Необходима помощь в следующем:
char * UserData[4] = { new char[50], new char[50], new char[13], new char[4] };
char *** phoneBook = new char ** [10];
phoneBook[0] = UserData;
gets(UserData[0]);
gets(UserData[1]);
gets(UserData[2]);
gets(UserData[3]);
cout << phoneBook[0][2] << " Test string 1
"; // Вывод стоки, здесь все хорошо.
phoneBook[1] = UserData;
gets(UserData[0]);
gets(UserData[1]);
gets(UserData[2]);
gets(UserData[3]);
// Вывод стоки, здесь всё хорошо.
cout << phoneBook[1][3] << " Test string 2
";
// Значение перезаписалось! Почему?
cout << phoneBook[0][2] << " Test string 1
WHY IS IT CHANGING???";
Проблема в том, что я как бы "перезаписываю" каждый раз значения, которые вводил с клавиатуры.
Мне нужно сделать так, чтобы я имел возможность ввести массив данных 1, потом массив данных 2 и потом сделать их вывод например. Как это можно сделать?
Ответ
Указатели phoneBook ссылаются на один и тот же массив.
phoneBook[0] = UserData;
phoneBook[1] = UserData;
Вам нужна структура
Например:
struct phoneBookStruct{
char UserData0[50];
char UserData1[50];
char UserData2[13];
char UserData3[4];
}
Вот её вы можете использовать как массив
phoneBookStruct phoneBook[10];
gets(phoneBook[0].UserData0);
gets(phoneBook[0].UserData1);
gets(phoneBook[0].UserData2);
gets(phoneBook[0].UserData3);
cout<
cout<
Комментариев нет:
Отправить комментарий