gpt4 book ai didi

c - 分配大型(5000+)数组

转载 作者:太空狗 更新时间:2023-10-29 17:05:28 27 4
gpt4 key购买 nike

我正在开发一个应用程序,如果输入的数据有三种可能的大小:

  • 小:1000 个元素
  • 中等= 5000 个元素
  • 大 = 500,000 个元素

问题是我无法分配大数组。好像不接受大于 5000 的大小。

当我执行以下操作时出现运行时错误:

long  size=1000;
char ch;
int arr[size];
ch=getch();

if(ch==..)
size=...;

大小为 1000 和 5000 似乎工作正常,但我怎样才能用这种方式制作大小为 500k 的数组?

最佳答案

你可以在堆上分配这么大的数组:

int *arr;
arr = malloc (sizeof(int) * 500000);

不要忘记检查分配是否成功(如果没有 - malloc 返回 NULL)。

正如 pmg 所提到的 - 由于此数组不在堆栈中,因此您必须在使用完它后释放它。

关于c - 分配大型(5000+)数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5746377/

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