hgi*_*sel 0 c heap heap-memory dynamic-allocation
当我用C malloc系列函数动态分配内存时,是否有一些规则(来自C标准或操作系统的内部工作)关于该内存的初始值是什么?
int* ptr = malloc(sizeof (*ptr));
bool b = *ptr == 0; // always true?
Run Code Online (Sandbox Code Playgroud)
就C标准而言,动态分配内存的初始值是不确定的.有些平台可能碰巧给你零,其他平台可能碰巧给你像0xEE这样的保护值,但在便携式C程序中都不能依赖它.
如果你需要零,最常用的方法是使用calloc(),它有可能在某些平台上进行优化.
| 归档时间: |
|
| 查看次数: |
362 次 |
| 最近记录: |