C程序。文件夹。
我正在处理文件,这给了我一个分段错误后,我编译它。 我正试图打开一个文件并将其保存在一个向量中。此外,我想使用dinamic内存来分配它C程序。文件夹。,c,file,segmentation-fault,C,File,Segmentation Fault,我正在处理文件,这给了我一个分段错误后,我编译它。 我正试图打开一个文件并将其保存在一个向量中。此外,我想使用dinamic内存来分配它 #include "stdio.h" #include "stdlib.h" main(){ int n,v[n],i,c,cant; FILE*archivo; archivo = fopen("vectores.dat","wb"); if(archivo == NULL) { printf("Error
#include "stdio.h"
#include "stdlib.h"
main(){
int n,v[n],i,c,cant;
FILE*archivo;
archivo = fopen("vectores.dat","wb");
if(archivo == NULL)
{
printf("Error while opening");
exit(1);
}
printf("write the number of integers you want to save in the file");
scanf("%d",&cant);
for(i=0;i<cant;i++){
printf("write the number in the position: %d",i+1);
scanf("%d",v[i]);
}
c= fwrite(v,sizeof(int),n,archivo);
if(c<1){
printf("Error while writing");
exit(1);
}
}
这是一个大问题:
首先声明变量n,但不初始化它,然后将v声明为n个整数的数组。问题是,因为n未初始化,所以它的值是不确定的,您必须这样做
稍后再次使用n,仍然没有初始化
如果你的程序在任何地方都有未定义的行为,那么它的格式是错误的,并且没有一个代码是可信的。你没有意识到程序员有一个心灵编译器:-@EdHeal great!我在哪里可以下载?几十年来一直想要一个。一个通灵链接器会更好,没有更多的makefiles:@MartinJames-makefiles-那是旧的skool
int n,v[n],...