輸出的數據,和指針被釋放之前,一模一樣,為什么
2 回答

慕萊塢森
TA貢獻1810條經驗 獲得超4個贊
因為釋放指針,只是將指針所指的內存空間交還給系統,而指針變量的內容(即剛釋放的內存地址)并為改變,所以還能輸出。但此時的指針一般稱之為“野指針”,是很危險的。
所以,一般要求釋放指針后,緊接著將其置為空:
free(p);
p=NULL;

慕田峪9158850
TA貢獻1794條經驗 獲得超8個贊
你編譯器的問題吧,我這里 printf("p=%s\n",p) ; 沒有輸出的。
// 不用對 malloc 返回的指針強制轉換?
char *p = (char*)malloc(100);
添加回答
舉報
0/150
提交
取消