gpt4 book ai didi

c - 基于程序运行时的崩溃

转载 作者:太空宇宙 更新时间:2023-11-04 04:59:47 27 4
gpt4 key购买 nike

在下面的程序中,当用户输入 720 时程序崩溃。为什么?

main()
{
for (;;)
{
int depth,i,j;
printf("enter the depth");
scanf("\n%d",&depth);
printf("first");
int arr[depth][depth];//at this line the program get crashed //
printf("first1");
for(i=0;i<depth;i++)
{
for(j=0;j<=i;j++)
{
arr[i][j]=i+1;
}
}
for(i=0;i<depth;i++)
{
printf("\n");
for(j=0;j<=i;j++)
{
printf("%d\t",arr[i][j]);
}
}
}
}

最佳答案

在堆栈上分配了一个类似的数组。如果用户输入 720,您将获得一个大小为 720*720*sizeof(int) 字节的数组。在具有 32 位 int 的系统上,这几乎是 2MB。您可能会确切地知道这个网站的名字:堆栈溢出!

相反,在堆上分配:

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

稍后您需要使用free(arr); 释放内存。

关于c - 基于程序运行时的崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30576033/

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