运行时错误我的代码sigsegv

问题描述:

我是新来的编码。当我在codecheff中提交我的代码时,它给出了“运行时错误(SIGSEGV)”。我不知道有什么问题请帮忙。提前致谢。 我是新来的编码。当我在codecheff中提交我的代码时,它给出了“运行时错误(SIGSEGV)”。我不知道有什么问题请帮忙。提前致谢。运行时错误我的代码sigsegv

#include <iostream> 
using namespace std; 

int main() 
{ 
int n,m,k,i,l,j,a[100000][100000],r,c,s,d; 

cin >> n >> m >> k; 
cout<<endl; 

for(i=1;i<=n;i++) 
{ 
    for(j=1;j<=m;j++) 
    { 
    cin>>a[i][j]; 
    cout<<" "; 
    } 
    cout<<endl; 
} 

for(l=1;l<=k;l++) 
{ 
    cin >> r >> c >> s >> d; 

for(i=r;i<=r+s-1;i++) 
{ 
    for(j=c;j<=c+s-1;j++) 
    { 
     a[i][j]=a[i][j]+d; 
    } 
} 
} 

for(i=1;i<=n;i++) 
{ 
    for(j=1;j<=m;j++) 
    { 
    cout<<a[i][j]; 
    cout<<" "; 
    } 
    cout<<endl; 
} 
return 0; 
} 

总阵列大小可以大到10^5 = 10,000是最大值。 所以int a[100][100]是最好的,你可以得到。您可以使用vector<int>而不是2维数组。它有更多的好处,易于使用,并有[]运营商。

此外,我不确定该程序的目的是什么,因此我无法优化您的代码并使其更优雅。如果你能更好地解释它,我可能有一个想法让它变得更好。