(这与我之前遇到的问题有关。)在尝试将一个字符数组中的值分配给另一个字符数组时,我遇到了一个奇怪的问题,即正确的值没有被复制,但只有在我使用循环时才会被复制。我注释掉了循环并手动写出了它的迭代,它按我想要的方式工作。什么可能导致此问题?
//导致数据传输不正确
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]);