在C工作,我填充字符*返回值的陣列從一個函數C字符串數組比較
char* files[4][12];
int i = 0;
for (;;)
{
char* file = get_value();
strcpy(files[i],file);
i++;
if (i > 4 || external_condition)
break;
}
// When I break out of
// my for loop the following
// code executes
for (i = 0; i < 5; i++)
{
if (files[i] != NULL)
manipulate(files[i]);
}
我的問題是,如果我打出來的第一個for循環,而不對所有分配值文件的元素,我在第二個for循環中的比較失敗。如果只有文件[0]和文件[1]具有內容,則循環無論如何處理文件[2],文件[3]和文件[4]。
一個問題是你正在做'strcpy(files [i],file);'沒有爲指針'files [i]'分配任何內存。這將導致未定義的行爲。 –