【发布时间】:2011-09-08 14:06:56
【问题描述】:
在 C/C++ 中,我们习惯于在取消引用之前检查空指针,例如
int *p = malloc(sizeof(int));
if (p != 0)
{
/* Do something with the pointer */
}
因此,内存管理器永远无法返回指向第一个内存地址(p == 0)的指针,因为调用程序将假定内存无法分配。
这是否意味着在整个系统内存空间和进程的内存空间中,第一个字节或字(用于对齐目的)始终未使用?还是系统或内核使用了这块内存,它知道可以安全地取消引用哪些空指针?
【问题讨论】:
标签: pointers memory-management