我遇到了分段错误的问题。 看:
#include<fstream>
using namespace std;
int main(){
int n,i,vector[10001],vectorcopy[10001];
ifstream in("program.in");
ofstream out("program.out");
in>>n;
for(i=1;i<=n;i++){
in>>vector[i];
vectorcopy[i]=vector[i];
}
return 0;}
调试器说: 程序恢复信号SIGSEGV,分段故障
请告诉我该怎么做!
答案 0 :(得分:3)
如果输入文件program.in
正确,您的程序(大部分)正常工作。我认为您的分段错误错误是由以下原因引起的:
这个program.in
输入文件没有错误:
10
1
2
3
4
5
6
7
8
9
10
其他错误
我说“大多数”因为你的程序中还有一些其他错误。他们现在没有造成麻烦(C ++称之为“未定义的行为”),但他们迟早会:
对于大小为n
的数组,索引从0开始,到n - 1
结束;使用数组时,不要像这样编写for
语句:
for (i = 1; i <= n; i++)
只需将其重写为:
for (i = 0; i < n; i++)
vectorcopy
数组program.out
输出文件