回答編集履歴
1
追記
    
        answer	
    CHANGED
    
    | 
         @@ -17,4 +17,17 @@ 
     | 
|
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
            > どう直せばいいかがわかりません。
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
            直し方より原因を掴むのが先ですよ!
         
     | 
| 
      
 20 
     | 
    
         
            +
            直し方より原因を掴むのが先ですよ!
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            ---
         
     | 
| 
      
 23 
     | 
    
         
            +
            追記:(大した話ではないですが)
         
     | 
| 
      
 24 
     | 
    
         
            +
            異常終了する付近を調べる際、仕様を勘違いしていたり動作自体を勘違いしていたりといったことはよくあるので、少なくとも後者はデバッグプリントしておくと気づける場合もあります。
         
     | 
| 
      
 25 
     | 
    
         
            +
            ```C
         
     | 
| 
      
 26 
     | 
    
         
            +
            strcpy(name, strtok(NULL, x));
         
     | 
| 
      
 27 
     | 
    
         
            +
            // ここでstrcpyの第二引数にNULLを渡すと致命的
         
     | 
| 
      
 28 
     | 
    
         
            +
            // ならばデバッグするときは・・・
         
     | 
| 
      
 29 
     | 
    
         
            +
            char* tmp1 = strtok(NULL, x));
         
     | 
| 
      
 30 
     | 
    
         
            +
            printf("tmp1 = %p\n", tmp1);
         
     | 
| 
      
 31 
     | 
    
         
            +
            strcpy(name, tmp1);
         
     | 
| 
      
 32 
     | 
    
         
            +
            // などとすれば、より状況がつかみやすくなる・・・
         
     | 
| 
      
 33 
     | 
    
         
            +
            ```
         
     |