c - 我的C程序中的内存分配问题

标签 c

如果我正在用 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/

相关文章:

c - 数组无故更改其第一个字母

c++ - MSVC 相当于 __attribute__ ((warn_unused_result))?

c - 如何使用平方根优化c中的循环(完美、丰富、不足)

c - C 标准是否保证#error 指令的诊断消息?

c++ - 如何使 DirectBuffer 次级声音?

c - srand 与 rand 函数有什么关系?

c - 为什么建议在打印前将指针转换为通用指针?

c++ - 是否有一个跨平台的 C/C++ 库可以为我们提供 CPU 和内存使用情况统计信息?

c - 如何访问结构内部的 union ?

c - C中的位操作