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