如果我正在用 C 编写一个程序,我怀疑它可能会占用大量内存,我可以使用 malloc 函数吗? malloc 知道我的程序需要多少内存吗?我知道它会返回它找到的内存值,但它如何知道它是否足够?
例如
int * buffer;
buffer = (int*)malloc(sizeof(int)*70);
if(buffer==NULL){
fprintf(stderr, "malloc error!");
}
最佳答案
Does malloc know how much memory my program wants?
您将内存量指定为 malloc 参数,以便它知道要分配多少内存
在您的示例中,它将分配 sizeof(int)*70
字节(例如,在 32 位 Windows 上为 4*70=280 字节)
I know it returns a value of the memory it found but how does it know if its enough?
它查看您的参数并检查操作系统是否有足够的内存供您使用,如果内存不足则返回 NULL。
关于c - 我的C程序中的内存分配问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9177760/