0

(これは以前の問題に関連しています。)ある文字配列から別の文字配列に値を割り当てようとすると、正しい値がコピーされず、ループを使用した場合にのみ、奇妙な問題に直面します。ループをコメントアウトし、その反復を手動で書き出しましたが、希望どおりに機能しました。この問題の原因は何ですか?

//誤ったデータ転送を引き起こします

 for(int q=0; q<4; q++){


   directory[q] = malloc(sizeof(char) * (1 + strlen(temp[q])));

   strcpy(directory[q],temp[q]);


  }

//しかし、これは正常に機能します

directory[0] = malloc(sizeof(char) * (1 + strlen(temp[0])));

strcpy(directory[0], temp[0]);

directory[1] = malloc(sizeof(char) * (1 + strlen(temp[1])));

strcpy(directory[1], temp[1]);

directory[2] = malloc(sizeof(char) * (1 + strlen(temp[2])));

strcpy(directory[2], temp[2]);

directory[3] = malloc(sizeof(char) * (1 + strlen(temp[3])));

strcpy(directory[3], temp[3]);
4

0 に答える 0