Realloc和sscanf成为一个函数

我有一个有num行的文件:每行包含一个数字。 我想将每个数字保存到矢量*vet 。 为什么这段代码不起作用?

Segmentation fault (core dumped)

我认为错误是save_numbers函数中的sscanf ,但我不知道为什么。

 #include  #include  /* This function allocate memory and save numbers into a vector */ int save_numbers (int **vet, int *num) { FILE *fin; int i = 0; char buff[10]; if ( !(fin = fopen("numbers.dat", "r")) ) return 1; while ( fgets(buff, sizeof(buff), fin) ) { *vet = (int *) realloc (*vet, (i+1) * sizeof(int) ); sscanf (buff, "%d", vet[i]); i++; } *num = i; return fclose(fin); } int main () { int i, num, *vet = NULL; if ( save_numbers(&vet, &num) ) { perror("numbers.dat"); exit(1); } /* print test */ for (i=0; i<num; i++) printf ("%d ", vet[i]); printf("\n"); free(vet); return 0; } 

文件示例: http : //pastebin.com/uCa708L0

更改

 sscanf (buff, "%d", vet[i]);//vet : int ** 

 sscanf (buff, "%d", &(*vet)[i]);