![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.10.2011
Сообщений: 35
|
![]() Код:
Например, если я сначала введу Igor, То программа правильно отобразит: lol1=Igor lol2=Igor Во втором вводе ввожу Vasya Выводит: lol1=Vasya lol2=Vasya. Хотя lol2 нигде не менялось, поясните дураку в чем ошибка х( Заменил строку Код:
Код:
Последний раз редактировалось kypck; 30.10.2011 в 21:49. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
В том, что lol, lol1, lol2 - это адреса, указатели на начала массивов.
lol1=lol - "записать в lol1 то, что записано в lol", а записан там адрес массива, выделенного lol оператором new. При этом, блок памяти, выделенный при инициализации lol1, "потерялся" - в программе не осталось переменных, в которых хранился бы его адрес; этот эффект называется "утечкой памяти" (memory leak) и его надо всеми силами избегать. А lol и lol1 теперь указывают на начало одного и того же блока, являясь, фактически, синонимами: lol[56]='a' эквивалентно lol1[56]='a', эти действия производят одинаковые изменения в памяти программы. str(n)cpy - функция копирования, она переносит именно содержимое одного массива в другой. Это достаточно важный момент, советую разобраться. Что выведет на экран следующий код и почему? Код:
Последний раз редактировалось Abstraction; 30.10.2011 в 22:34. Причина: Ошибка в объявлении |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 23.10.2011
Сообщений: 35
|
![]() Цитата:
а в 1 строке разве не нужно int *pointer1, *pointer2? Код посмотрел, ничего нового не узнал х) За объяснение с чарами спасибо. Все стало на свои места Последний раз редактировалось kypck; 30.10.2011 в 22:24. |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
kypck, я растяпа. Спасибо, исправил.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
'unsigned char [512]' в 'const char *' | frommars | Visual C++ | 8 | 02.07.2011 13:37 |
Проблема с программой. Нельзя преобразовать тип set of char к char | Lasso | Помощь студентам | 5 | 07.06.2011 12:03 |
преобразование типов char-const char | student101 | Помощь студентам | 8 | 01.12.2010 20:45 |
Ошибка cannot convert from 'char *' to 'char [100]' | Stellvertreter | Общие вопросы C/C++ | 5 | 30.05.2010 00:02 |
Есть таблица - В ней три поля int, char, char нужно чтобы данные заносились в таблицу Mysql | Muahahaha | PHP | 8 | 27.03.2008 11:17 |