亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

若將第10行代碼替換為 p = &b;程序依然可以訪問p所指內容,所以此段代碼無法證明大括號內的內存是否銷毀或保留

#include <stdio.h>

#include <iostream>

int main()

{

int* p = nullptr;

{??

int b = 20;

p = &b;

}

*p = 4;

printf(" *p is %d\n", *p);

system("pause");

? ? return 0;

}


正在回答

2 回答

c++中清變量不清指針,b被回收,p不變,成為野指針,若此時內存被其他程序占用,則后果不堪設想。

0 回復 有任何疑惑可以回復我~

p指向的是一塊實際內存地址,就算b被回收了,p還是指向的那塊地址,變的是那塊地址存儲的內容,所謂回收是存儲在實際內存中的數據的數清理。

printf(" *p is %d\n", *p);

*p = 4;

可以這樣,改一下位置

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

若將第10行代碼替換為 p = &b;程序依然可以訪問p所指內容,所以此段代碼無法證明大括號內的內存是否銷毀或保留

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號