段错误了,没有运行,只看程序的错误有
1.fin = fopen ( " p9.data ", " r " ) ;没有检查fin的有效性,当打开文件失败时,访问fin会造成段错误,去掉引号中的空格,并检查fin是否有效。
2.for后面的分号去掉,不然数组越界访问a[n]了,可能造成段错误
for ( i = 0 ; i < n ; i++ )//这里的分号;要去掉
{
fscanf ( fin, "%d", &A[i] );
printf("%d ",a[i])//不能用fprintf
}
Segmentation fault 是内存越界
现在我看懂了。。。。。。
fprintf ( fin, "%d", A[i] ) ; 这句话
你输出到原来的那个文件了。。。
你可以 FILE *fout 然后再 fout = fopen( "a.out", "w");
然后再fprintf(fout,"%d", a[i]);
应该就可以了
打开文件没有检查是否打开失败。
很明显打开"p9.data"是失败的,自然读取数据就错误了。
fprintf ( fin, "%d", A[i] ) ;
你的打开文件方式是R只有读,这里不能写啊!
open文件 前后有空格 导致打开文件指针为空,所以后面fscanf导致程序应用空指针直接崩溃。
for ( i = 0 ; i < n ; i++ );这个代码执行后i=n了;这个循环后面不应该有“;”号。
哎这个错误显然是内存有问题啊。有木有代码啊