我的第一個問題是函數中的new分配的內存在函數結束時會自動刪除(釋放)。新的內存分配
int* foo()
{
int *a = new int; //memory allocated for an int
*a = 3;
return (a);
}//function ends -- is memory for integer still allocated.
如果存儲器自動函數結束後取消分配,那麼不應該我的下一個代碼給與訪問不屬於我的記憶有些誤差。
int main()
{
int *x = foo();
cout<<*x;
}
'了'從未佔用內存的整數。它佔用一個指向整數的指針的內存。當函數結束時,你想知道該內存是否仍然分配/有效。指針('a')發生什麼並不相關。 – leemes
@leemes我編輯了我的問題。現在是否正確? – hoder
是的。我不想糾正你的措辭,而是想確保你正確地理解它。 – leemes