SIGSEGV错误(运行时错误)

时间:2015-10-21 08:16:44

标签: c++ segmentation-fault

This是我正在努力解决的问题。

这是我的尝试:

#include <iostream>
using namespace std;

int main()
{
long long   int n;
cin>>n;
long    long int a[n],b[n],i,max1=0,max2=0;
a[0]=0;
for(i=1;i<n+1;i++){
cin>>a[i];
if(abs(a[i]-a[i-1])>max1) 
max1=abs(a[i]-a[i-1]);

}
b[0]=0;
for(i=1;i<n+1;i++){
cin>>b[i];
if(abs(b[i]-b[i-1])>max2)
max2=abs(b[i]-b[i-1]);
}

if(max1>max2)
{   cout<<"Dom"<<endl;
cout<<max1;}
else    if(max1<max2)
{   cout<<"Brian"<<endl;
cout<<max2; }
else
{
cout<<"Tie"<<endl;
cout<<max1;
}
//cout << "Hello World!" << endl;
return 0;
}

执行时,它会出现段错误。

有人可以帮我解决问题吗?

1 个答案:

答案 0 :(得分:0)

循环将始终在数组边界之外写入一个元素,因为循环中WindowsError: [Error 193] %1 is not a valid Win32 application的最大值为i。为每个数组分配n内存或将循环条件设置为n + 1