(这与之前的问题有关。)在尝试将值从一个字符数组分配给另一个字符数组时,我面临一个奇怪的问题,即没有复制正确的值但只有当我使用循环时。我注释掉循环并手动写出它的迭代,它按照我的意愿工作。可能导致这个问题的原因是什么?
//导致错误的数据传输
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]);