배열 요소를 추가하는 프로그램을 작성하고 이전 요소가 0이면 합계에서 요소를 제거해야하지만 SIGSEGV 로 런타임 오류가 발생합니다.이 오류를 어떻게 해결할 수 있습니까?
#include <stdio.h>
int main()
{
int i,arr[10],n,sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d\n",&arr[i]);
}
for(i=0;i<n;i++)
{
sum=sum+arr[i];
}
for(i=0;i<n;i++)
{
if(arr[i]==0)
{
sum=sum-arr[i-1];
}
}
printf("%d",sum);
return 0;
}
여기서 문제는 어레이의 크기입니다. 크기 10에 대해 배열을 선언했으며 사용자가 크기를 100으로 입력하면 이러한 종류의 런타임 오류가 나타납니다. 이 예외를 피하려면 사용자가 크기를 입력 한 후 배열을 선언하십시오.
scanf("%d",&n);
int arr[n];
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다