循环是否会导致C中的赋值问题

时间:2012-10-20 02:31:46

标签: c arrays loops concatenation

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

  

//导致错误的数据传输

 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]);

0 个答案:

没有答案