如果malloc返回NULL怎么办?

Vla*_*dan -2 c pointers memory-management

在我的程序中,我处理大量数据。我使用 malloc() 函数为我的大数组分配内存。分配内存后,我检查指针是否为NULL(那是因为没有那么大的内存空间或者我不知道为什么)。

但有时我的指针是NULL。那么现在该怎么办呢?我做了一个循环,如果指针为空,它会尝试一次又一次地分配它。但它变成了无限循环,并且仍然说指针为 NULL。那么如果不想分配内存怎么分配呢?

谢谢你的回复。

YSC*_*YSC 5

这取决于您尝试分配的内存的重要性:

  • 如果程序没有它就无法运行,只需记录错误并关闭即可;
  • 如果程序可以在没有它的情况下运行,并且如果在降级模式下运行有意义,则记录错误,放弃处理并继续希望得到最好的结果。