相关疑难解决方法(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万
查看次数

声明大型数组时出现堆栈溢出异常

以下代码为我生成堆栈溢出错误

int main(int argc, char* argv[])
{
    int sieve[2000000];
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?我正在使用Turbo C++,但我想将我的代码保存在C中

编辑:

感谢您的建议.上面的代码只是例如,我实际上在函数中声明了数组而不是在sub main中.此外,我需要将数组初始化为零,所以当我使用Google搜索时,我发现calloc非常适合我的目的.

Malloc/calloc还具有优于堆栈分配的优势,允许我使用变量声明大小.

c memory arrays stack allocation

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

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中声明堆栈中的大型数组会出现段错误?

我从这行代码中得到了一个段错误:

int fatblob[1820][286][5];
Run Code Online (Sandbox Code Playgroud)

这是为什么?

c stack

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

标签 统计

arrays ×3

c ×3

stack ×2

allocation ×1

c++ ×1

integer ×1

memory ×1

segmentation-fault ×1