Does "delete pointer" simply mean "* pointer = 0"?
# include <iostream>
int main()
{
using std::cout;
int *p= new int;
*p = 10;
cout<<*p<<"\t"<<p<<"\n";
delete p;
cout<<*p<<"\t"<<p<<"\n";
return 0;
}
Output:
10 0x237c010
0 0x237c010
Here, after removing p, why does the pointer p keep its value? Doesn't delete free pointer p?
What exactly does "free pointer" mean?
"Delete p" just means "* p = 0"? (What seems to be the output)
, , , . .
. - , . , - . - , . , , "".
( , , , ). , .
new int . -, : " , int". , : , int.
int. , , , , , , . .
new int does - int. , (new int(5) 5).
int . int. : , .
delete p, . -, p . , int, . , .
delete : ", : int, ? ". , . , , debug-builds. - .
, , , , , , , . int, . , , , . .
, , . , . delete p, p :
!
, new int. . , new delete.
, ?
delete p;
cout << *p << "\t" << p << "\n";
++ " undefined". ++ , , , "undefined". undefined , ! *p 0. *p , . *p .
++ - /. , , , . "undefined " - , , , -, ++, . .
delete p, , p. , . - , , . . . - .
. .
, , delete p *p = 0. " 0 , p". , " , p, , , , ".