微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

calloc – 清除内存的有用性

清除内存(即calloc()超过malloc())的优点是什么?你不会改变价值到别的东西吗?

解决方法

有两个阵营:一个是在声明初始化变量时有助于发现错误.这个营中的人们确定他们声明的一切都被初始化了.它们将指针初始化为NULL,ints为0等.这个想法是一切都是确定的,当他们在调试器中看到一个NULL指针时,他们立即知道它没有正确设置.它也可以帮助您的程序在测试期间崩溃,因为NULL指针取消引用,而不是在生产运行中神秘地崩溃.

一个阵营说,在声明中初始化变量使得更难调试,因为现在编译器不能警告你有关使用而不设置的变量.

没有告诉你我的个人偏好1:如果你属于第一个阵营,你需要calloc()而不是malloc().如果你属于第二个阵营(这显然是你做的),那么你更喜欢malloc()超过calloc().

现在有两个例外:

>如果你属于“初始化所有”阵营,那么你不需要calloc(),而不是malloc(),因为你正在初始化浮点数或者指针,而且你知道所有位0并不一定意味着0.或者你不想额外的开销.
>如果你属于“设置你需要”阵营,你可能想要calloc(),当你分配一些数据,并希望它是全零.例如,如果要计算动态分配的int数据的n的逐行总和.

1你可以在这里看到我对许多问题的答案,看看我属于哪个阵营:-).

原文地址:https://www.jb51.cc/c/114040.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐