fgets が原因で、以前にコンパイルされたプログラムがある時点でセグメント フォールトになる理由はありますか? それに関連するコードはまったく変更しませんでした。突然、ファイルを開くのに失敗したと思いますが、15分前のようにファイルでテストしました....検索機能を追加しただけなので、何が問題なのかわかりません....
PuTTy 経由で接続しているサーバーでしょうか?
int createarray( int **arrayRef, FILE *fptr){
int size = 0, i;
char rawdata[100];
while (fgets(rawdata, 99, fptr) != NULL){
size++;
}
rewind(fptr);
*arrayRef = malloc(sizeof(int) * size);
for ( i = 0; i < size; i++ ){
fgets(rawdata, 99, fptr);
*(*arrayRef + i) = atoi(rawdata);
}
return size;
}
int main ( int argc, char **argv ) { //main call
// declare variable to hold file
FILE *inFilePtr = fopen(*(argv + 1), "r");
int **aryHold;
int numElements, sortchoice, key, foundindex;
// Call function to create array and return num elements
numElements = createarray(aryHold, inFilePtr);
これはコンパイルされ、正しく実行され、それ以来変更されていないコードです。GDB は、fgets にエラーがあると言います。