Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C语言中,在什么情况下函数realloc会返回Null?_C++_C_Realloc - Fatal编程技术网

C++ 在C语言中,在什么情况下函数realloc会返回Null?

C++ 在C语言中,在什么情况下函数realloc会返回Null?,c++,c,realloc,C++,C,Realloc,Realloc用于调整先前分配的内存块的大小?在什么情况下,此函数调用会返回空值?当realloc函数无法获得更多内存以将块扩展到您要求的大小时。这可能是因为实际上没有可用的内存,或者虚拟空间已耗尽,例如,在具有16GB RAM的64位计算机上,32位应用程序在进程空间中的使用量仍然不能超过4GB 如果新大小为0,它也可能返回NULL 请注意,在Linux和可能的其他操作系统中,当在内存有限的系统上运行时,即内存大小小于虚拟内存大小,您的进程更有可能被OOM killer杀死,而不是接收空指针

Realloc用于调整先前分配的内存块的大小?在什么情况下,此函数调用会返回空值?

当realloc函数无法获得更多内存以将块扩展到您要求的大小时。这可能是因为实际上没有可用的内存,或者虚拟空间已耗尽,例如,在具有16GB RAM的64位计算机上,32位应用程序在进程空间中的使用量仍然不能超过4GB

如果新大小为0,它也可能返回NULL

请注意,在Linux和可能的其他操作系统中,当在内存有限的系统上运行时,即内存大小小于虚拟内存大小,您的进程更有可能被OOM killer杀死,而不是接收空指针

单击[1]:


如果函数未能分配请求的内存块,将返回空指针,并且参数ptr指向的内存块未解除分配,则该内存块仍然有效,且其内容保持不变。

是否尝试,谷歌it?或内存碎片我不推荐这个参考。问题是如果失败了,在什么情况下会失败,而不是如何指示和处理失败。