小编mic*_*ael的帖子

C:在函数内声明的数组不能超过~8MB的内存.

我究竟做错了什么?在Mac(2GB RAM)上使用Eclipse时遇到了以下问题:

每当我尝试创建一个超过8384896字节的数组时,我就会出现分段错误.以下程序将执行:

#include <stdio.h>

main()
{
    double x[1048112];
    printf("sizeof(x) = %li", sizeof(x));
}
Run Code Online (Sandbox Code Playgroud)

输出将是(如预期的那样):

sizeof(x)= 8384896

但是增加x中的元素数量或在main()中创建其他变量会导致无法执行的程序和段错误.看起来我正在达到一些内存限制,我不明白为什么会发生这种情况.如果有人能向我解释这个问题,或者可能为我的问题提供某种解决方案,我将非常感激.

c memory memory-management

3
推荐指数
2
解决办法
711
查看次数

标签 统计

c ×1

memory ×1

memory-management ×1