| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Указатели и строки |
| Автор: Competitor 17.5.2006, 21:00 | ||
Идея следующей программы: получить четыре строки и вывести их последовательно на экран.
Однако вместо этого выводятся четыре последних введенных строки. Что я делаю неправильно? Как сделать так, чтобы, например, на введенные "q1", "q2", "q3", "q4", программа выводила: "q1", "q2", "q3", "q4", а не "q4", "q4", "q4", "q4" |
| Автор: nikitao 17.5.2006, 21:13 | ||
Competitor, вы не понимаете. После того как выполняется
Все четыре указателя массива arr указываеют на одну и ту же строку. Именно поэтому выдается один и тот же результат во всех 4 строках.Вам надо именно копировать строку, а не присваивать указатели друг другу |
| Автор: MAKCim 18.5.2006, 08:12 | ||
Добавлено @ 08:14 функция gets - не безопасна! если у тебя C++ использовал бы std::string и getline |
| Автор: nikitao 18.5.2006, 11:00 |
| MAKCim, приведенный вами код является кодом С++, а Competitor использует С |
| Автор: Fazil6 18.5.2006, 11:07 | ||||
кто тебе сказал? разве это С????
|
| Автор: nikitao 18.5.2006, 11:10 |
| Хм,... |
| Автор: bsa 18.5.2006, 11:24 | ||||
Твой немного исправленный вариант:
Более правильный вариант:
|
| Автор: MAKCim 18.5.2006, 19:18 | ||||||
думаю так
как то некономно память расходуется |