おそらく2回目のアドレス関係でだめだと思うのですが、どこが悪いのでしょうか?
void load_enemy_data(){ int num,i,fp; char fname[32]={"../dat/csv/story.csv"}; int input[64]; char inputc[64]; // 実態を作る。 enter_enemy_t *new_enter_enemy; enter_enemy_t *now_enter_enemy; fp = FileRead_open(fname);//ファイル読み込み if(fp == NULL){ printfDx("read error\n"); return; } for(i=0;i<2;i++)//最初の2行読み飛ばす while(FileRead_getc(fp)!='\n'); num=0; new_enter_enemy = new enter_enemy_t; new_enter_enemy->next=NULL; // 最初の処理なら。 if( head_enter_enemy==NULL ) { // 最初の敵データ head_enter_enemy = new_enter_enemy; } else { // リストの最後を探す。 now_enter_enemy = head_enter_enemy; while( now_enter_enemy->next!=NULL ) { now_enter_enemy = now_enter_enemy->next; } // リストの最後に接続する。 now_enter_enemy->next = new_enter_enemy; //now_enter_enemy=NULL; } while(1){ for(i=0;i<64;i++){ inputc=input=FileRead_getc(fp);//1文字取得する if(inputc=='/'){//スラッシュがあれば while(FileRead_getc(fp)!='\n');//改行までループ i=-1;//カウンタを最初に戻して continue; } if(input==',' || input=='\n'){//カンマか改行なら inputc='\0';//そこまでを文字列とし break; } if(input==EOF){//ファイルの終わりなら goto EXFILE;//終了 } } switch(num){ case 0: new_enter_enemy->count =atoi(inputc);break; case 1: new_enter_enemy->pattern =atoi(inputc);break; case 2: new_enter_enemy->knd =atoi(inputc);break; case 3: new_enter_enemy->x =atof(inputc);break; case 4: new_enter_enemy->y =atof(inputc);break; case 5: new_enter_enemy->spd =atof(inputc);break; case 6: new_enter_enemy->wait =atoi(inputc);break; } num++; if(num==7){ num=0; //new_enter_enemy =NULL; new_enter_enemy = new enter_enemy_t; new_enter_enemy->next=NULL; // 最初の処理なら。 if( head_enter_enemy==NULL ) { // 最初の敵データ head_enter_enemy = new_enter_enemy; } else { // リストの最後を探す。 now_enter_enemy = head_enter_enemy; while( now_enter_enemy->next!=NULL ) { now_enter_enemy = now_enter_enemy->next; } // リストの最後に接続する。 now_enter_enemy->next = new_enter_enemy; //now_enter_enemy=NULL; } } } EXFILE: FileRead_close(fp); }