she*_*lbc 3 c memory
可以从程序分配的内存量是否有限制?我的意思是,是否有任何程序保护,例如,在无限循环中分配内存?
什么时候调用malloc()返回NULL指针?
malloc()
cdh*_*wie 7
是的,有一个限制.这个限制取决于许多因素,包括(但不限于):
setrlimit()
ulimit()
当内存无法分配时,malloc()将返回NULL.如果系统完全内存不足,则可能会强制终止您的进程.
NULL
Jac*_*cob 6
来自维基百科,
\n 可以分配的最大可能内存块malloc取决于主机系统,特别是物理内存的大小和操作系统实现。理论上,最大数字应该是类型中可以保存的最大值size_t,它是一个与实现相关的无符号整数,表示内存区域的大小。最大值为 2 ,即C99 标准中的常数。CHAR_BIT \xc3\x97 sizeof(size_t)\n \xe2\x88\x92 1SIZE_MAX\n
可以分配的最大可能内存块malloc取决于主机系统,特别是物理内存的大小和操作系统实现。理论上,最大数字应该是类型中可以保存的最大值size_t,它是一个与实现相关的无符号整数,表示内存区域的大小。最大值为 2 ,即C99 标准中的常数。CHAR_BIT \xc3\x97 sizeof(size_t)\n \xe2\x88\x92 1SIZE_MAX
malloc
size_t
CHAR_BIT \xc3\x97 sizeof(size_t)
\n \xe2\x88\x92 1
SIZE_MAX
Die*_*Epp 3
这取决于操作系统和标准库。
在 Linux 上,
当你用完地址空间时,malloc()将返回NULL。
当物理内存和交换空间都用完时,OOM 杀手将运行并终止进程以释放内存。
归档时间:
12 年,5 月 前
查看次数:
1342 次
最近记录: