gpt4 book ai didi

c - 由于 C 中内存不足导致的段错误

转载 作者:IT王子 更新时间:2023-10-29 00:22:45 24 4
gpt4 key购买 nike

此代码在大约 1/2 的时间内给出了段错误:

int main(int argc, char **argv) {
float test[2619560];
int i;
for(i = 0; i < 2619560; i++)
test[i] = 1.0f;
}

我实际上需要分配一个更大的数组,是否有某种方法可以让操作系统允许我获得更多内存?

我正在使用 Linux Ubuntu 9.10

最佳答案

您溢出了默认的最大堆栈大小,即 8 MB。

您可以增加堆栈大小 - 例如。对于 32 MB:

ulimit -s 32767

...或者您可以切换到使用 malloc 进行分配:

float *test = malloc(2619560 * sizeof test[0]);

关于c - 由于 C 中内存不足导致的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4220965/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com