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