相关疑难解决方法(0)

大数组大小的分段错误

以下代码在2Gb机器上运行时给出了分段错误,但在4GB机器上运行.

int main()
{
   int c[1000000];
   cout << "done\n";
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

阵列的大小只有4Mb.可以在c ++中使用的数组大小是否有限制?

c++ arrays segmentation-fault

103
推荐指数
3
解决办法
9万
查看次数

C编程,为什么这个大型数组声明会产生分段错误?

此代码在数组声明期间产生分段错误.我很困惑为什么会这样.我故意选择2000000000作为值,因为它低于2 ^ 31并且可以适合整数变量.

int main()
{

    int  nums_size = 2000000000;

    int nums[nums_size];

    int i;
    for(i = 0; i < nums_size; i++) {
        nums[i] = i;
    }


    return 0;

}
Run Code Online (Sandbox Code Playgroud)

c arrays integer

5
推荐指数
1
解决办法
5380
查看次数

c中数组的最大大小是否有限制?

可能重复:
C编程,为什么这个大型数组声明会产生分段错误?

我正在用c语言阅读图像,但我无法这样做,因为我的程序在两者之间停止...在调试之后我发现它是由于数组大小...对数组的最大大小有任何限制吗?如果我声明大小为1400X1400的数组一切正常但如果我定义大小为1600X1400的数组我的程序停止工作......为什么它是这样...编译器或操作系统对数组大小有任何限制?如果是这样,c的解决方案是什么.

    unsigned char idata[1400][1400]; //working fine
    unsigned char idata[1600][1400]; //not working
Run Code Online (Sandbox Code Playgroud)

c arrays multidimensional-array

3
推荐指数
1
解决办法
1万
查看次数