【发布时间】:2021-03-13 08:05:54
【问题描述】:
我正在尝试创建一个程序,我可以在其中跟踪所有先前元素的总和。下面是我写的代码。它因信号 11 崩溃,分段错误。
我尝试调试并找到原因。事实证明它在输入之前有效,但是当我尝试将 sum 分配给 sum 数组时,它会抛出错误。
#include<stdio.h>
int main()
{
long long int n,q,l,r,i,prev=0,temp;
long long int a[1000000], s[1000000];
scanf("%lld%lld",&n,&q);
for(i=0;i<n;i++)
{
scanf("%lld",&temp);
a[i]=temp;
printf("%lld",a[i]);
s[i]=a[i]+prev;
prev= s[i];
}
}
【问题讨论】:
-
问题更可能是您的阵列使用了太多内存,总共 16 MB。默认情况下,Linux 进程仅获得 8 MiB 的堆栈。
-
@Someprogrammerdude 是的,你是对的。我降低了初始大小,它可以工作。