我正在用C++試驗「新」 - 「刪除」和內存分配。在下面的程序:刪除指針問題
int* getPtrToFive() {
int x =5;
int *y = new int;
y = &x;
return y;
}
int main() {
int *p = getpoint();
cout << *p << endl;
delete p;
}
內getpoint
功能,我創建的堆內存,以確保它指向局部變量x
的地址指針y
將函數執行後返回。然後我想取消分配y
的內存,但是當我刪除指針p
時出現main
錯誤... 您能看到這裏出了什麼問題嗎?提前致謝。
你只能'刪除'用'new'創建的內容。 '&x'指向棧上的一個地址。你的意思是寫'* y = x;'? –
'delete'只能用於'new' – roottraveller
你正在返回並且是局部變量的地址。未定義的行爲 – Raindrop7