|
|
|
Указатели... запуталась(
|
|||
|---|---|---|---|
|
#18+
Мы объявляем указатель на char char* x; потом пишем в конструкторе cTest():x (''Text''){New()}; потом в одну из функций поступает следующий параметр char* y; Присваиваем в этой ф-ции x=y; Что случится со строкой Test? Я так понимаю, она останется висеть в памяти.... Как ее удалить из памяти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 00:15:40 |
|
||
|
Указатели... запуталась(
|
|||
|---|---|---|---|
|
#18+
mar55555 wrote: > Я так понимаю, она останется висеть в памяти.... Когда вы в тексте программы объявляете строку "Test", компилятор создает где-то в области константных данных массив с содержимым этой строки, и возвращает указатель на первый элемент этого массива. Именно этот указатель и присваетвается переменной x. Этот массив в памяти будет существовать пока работает программа, убить вы его не можете, и это вам не нужно. Кстати инициализировать char* константной строкой не стоит - если вы попытаетесь изменить в ней что-нибудь, у вас будет access violation. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 07:10:45 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34837331&tid=2028089]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
178ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
21ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 437ms |

| 0 / 0 |
