Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C程序。文件夹。_C_File_Segmentation Fault - Fatal编程技术网

C程序。文件夹。

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

我正在处理文件,这给了我一个分段错误后,我编译它。 我正试图打开一个文件并将其保存在一个向量中。此外,我想使用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 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],...