在无限循环中运行 malloc()

Apo*_*ani -5 c malloc

Malloc 函数成功时返回指向分配的内存位置的指针,失败时返回空值。如果我将 malloc() 放入无限 while 循环中,该循环会停止吗?malloc() 分配全部可用内存后,它会停止执行还是继续返回空值?

Ian*_*ney 5

重复调用malloc这种方式只会永远返回空指针。(但是,如果您尝试使用该空指针,您当然会遇到段错误)。

这与newC++ 中的行为不同,C++ 中bad_alloc如果无法分配新内存就会抛出异常。