Проблема в том, что всякий раз, когда я изменяю содержимое studName, содержимое внутри studArr тоже меняется.C - Сохранение массива символов несколько раз в массиве 2d char *
Если вход выглядит следующим образом (AAA,BBB,CCC)
я первый магазин AAA
внутри studName
, а затем хранить studName
в studArr
.
Я пытаюсь сделать:
studArr[0][1] = "AAA"
studArr[0][2] = "BBB"
studArr[0][3] = "CCC
, но когда я использую этот код все из них равное CCC
. Есть ли способ исправить это?
for (j = 0; j < NumCourses + 1; j++){
i = 0;
k = 0;
while ((c = fgetc(ifp)) != ')'){
if (c == ','){
studName[3] = '\0'; // ends sting with null char
studArr[j][k+1] = studName;
k++;
i = 0;
}
else{
studName[i] = c;
i++;
}
}
studName[3] = '\0'; // ends sting with null char
studArr[j][k+1] = studName; // store studName in studArr
}
Добро пожаловать в переполнение стека! Пройдите [tour] (http://stackoverflow.com/tour) и прочитайте [Как спросить] (http://stackoverflow.com/help/how-to-ask), чтобы узнать, чего мы ожидаем от вопросов здесь. –
Что такое 'studArr'? –
char * studArr [NumCourses] [1024]; char studName [3]; , где NumCourses является константой – IVRafa