Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Указатели... запуталась( / 2 сообщений из 2, страница 1 из 1
01.10.2007, 00:15:40
    #34837331
mar55555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указатели... запуталась(
Мы объявляем указатель на char

char* x;

потом пишем в конструкторе

cTest():x (''Text''){New()};

потом в одну из функций поступает следующий параметр

char* y;

Присваиваем в этой ф-ции

x=y;

Что случится со строкой Test?

Я так понимаю, она останется висеть в памяти....
Как ее удалить из памяти?
...
Рейтинг: 0 / 0
01.10.2007, 07:10:45
    #34837408
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указатели... запуталась(
mar55555 wrote:

> Я так понимаю, она останется висеть в памяти....
Когда вы в тексте программы объявляете строку "Test", компилятор создает
где-то в области константных данных массив с содержимым этой строки, и
возвращает указатель на первый элемент этого массива. Именно этот
указатель и присваетвается переменной x. Этот массив в памяти будет
существовать пока работает программа, убить вы его не можете, и это вам
не нужно. Кстати инициализировать char* константной строкой не стоит -
если вы попытаетесь изменить в ней что-нибудь, у вас будет access
violation.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Указатели... запуталась( / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]