calloc v / s malloc和时间效率
发布时间:2020-12-16 05:19:50 所属栏目:百科 来源:网络整理
导读:我已经很感兴趣地阅读了这个帖子 C difference between malloc and calloc .我在代码中使用了malloc,想知道使用calloc的区别. 我现在(伪)代码与malloc: 情景1 int main(){ allocate large arrays with malloc INITIALIZE ALL ARRAY ELEMENTS TO ZERO for lo
我已经很感兴趣地阅读了这个帖子
C difference between malloc and calloc.我在代码中使用了malloc,想知道使用calloc的区别.
我现在(伪)代码与malloc: 情景1 int main() { allocate large arrays with malloc INITIALIZE ALL ARRAY ELEMENTS TO ZERO for loop //say 1000 times do something and write results to arrays end for loop FREE ARRAYS with free command } //end main 如果我使用calloc而不是malloc,那么我会有: Scenario2 int main() { for loop //say 1000 times ALLOCATION OF ARRAYS WITH CALLOC do something and write results to arrays FREE ARRAYS with free command end for loop } //end main 我有三个问题: >如果阵列非常大,哪一种场景更有效? 解决方法
假设您的两个示例中初始化的总内存量是相同的,使用calloc()分配内存可能比使用malloc()分配内存更快,然后在单独的步骤中将其清零,特别是在malloc( )通过在一个循环中迭代它们来单独排除元素. malloc()后跟一个memset()可能会和calloc()一样快.
如果在实际上将计算结果存储在其中之前,不关心数组元素是垃圾,那么在malloc()之后不需要实际初始化数组. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |