1. 程式人生 > >對c++中new的理解

對c++中new的理解

前幾天複習C++教程看到下面的語句
char *p=NULL;    //初始化為NULL的指標
p=new char[20];    //為變數請求記憶體

乍一看註釋,好像是正確的,但是仔細一想,又發現是有問題的
“為變數請求記憶體”,為p請求?


char *p=NULL;    此時p是儲存在棧上,通過cout<<sizeof(p);可以發現p佔4個位元組的記憶體大小。
所以 p=new char[20];應該是“為指標p指向的地址 申請一塊20個地址連續的儲存空間(陣列)”。
指標存放的是地址,指標只是一個變數!