|
|
|
gjgvjubnt разобраться со смыслом delete
|
|||
|---|---|---|---|
|
#18+
Сразу говорю что новичок, прошу объяснить как работает delete Вот к примеру есть такой код в C++ Builder. void __fastcall TForm1::Button2Click(TObject *Sender) { if (!pInt) pInt = new int(5); } //-------------------------------------------------------------------------- - void __fastcall TForm1::Button3Click(TObject *Sender) { if (pInt) delete pInt; } //-------------------------------------------------------------------------- - void __fastcall TForm1::Button4Click(TObject *Sender) { if (pInt) ShowMessage(*pInt); } //-------------------------------------------------------------------------- - где pInt - это int *pInt. Так вот после нажатия второй кнопки адрес в pInt остается тем же. Это что получается что он не удаляется? Просто освобождается память? Как же тогда отследить что указатель был удален? Или после delete нужно pInt = NULL делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 16:29 |
|
||
|
gjgvjubnt разобраться со смыслом delete
|
|||
|---|---|---|---|
|
#18+
guest_gsТак вот после нажатия второй кнопки адрес в pInt остается тем же. Это что получается что он не удаляется? Просто освобождается память? Да, просто освобождается, но НЕ обнуляется. guest_gsКак же тогда отследить что указатель был удален? Или после delete нужно pInt = NULL делать? Можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 16:38 |
|
||
|
gjgvjubnt разобраться со смыслом delete
|
|||
|---|---|---|---|
|
#18+
нужно взять книжку и прочитать главу про указатели и выделение динамической памяти ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 16:40 |
|
||
|
gjgvjubnt разобраться со смыслом delete
|
|||
|---|---|---|---|
|
#18+
Книжку то я читаю. Там просто этот момент не особо подробно описан. Говорят что память очищается, а я в программе попробовал, а там не так происходит как я думал. Захотелось уточнить. Спасибо за ответ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 16:46 |
|
||
|
gjgvjubnt разобраться со смыслом delete
|
|||
|---|---|---|---|
|
#18+
guest_gsКнижку то я читаю. Там просто этот момент не особо подробно описан. Говорят что память очищается, а я в программе попробовал, а там не так происходит как я думал. Захотелось уточнить. Спасибо за ответ там должно быть написано, что есть указатель - переменная, в которой адрес выделяемого участка памяти, а есть выделяемый участок памяти, и это совершенно разные вещи. Указателей на одну область может много, это обычные переменные с адресом. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 16:51 |
|
||
|
gjgvjubnt разобраться со смыслом delete
|
|||
|---|---|---|---|
|
#18+
ну понял, то есть когда память освобождается, указатель не обнуляется. Я то подумал что он будет обнуляться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 17:23 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33680149&tid=2031477]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
185ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 446ms |

| 0 / 0 |
