[問題] 動態記憶體配置free()的問題

看板C_and_CPP作者 (yoyoyo)時間13年前 (2012/06/09 13:34), 編輯推噓2(209)
留言11則, 7人參與, 最新討論串1/1
#include<stdio.h> int main(void){ int i; int *ptr; ptr=(int*)malloc(3*sizeof(int)); *ptr=1; *(ptr+1)=2; *(ptr+2)=3; for(i=0;i<3;i++){ printf("%d\n",*(ptr+i)); } free(ptr); printf("\nfree(ptr)之後\n\n"); for(i=0;i<3;i++){ printf("%d\n",*(ptr+i)); } system("PAUSE"); } ---------------------------------- output: 1 2 3 free(ptr)之後 3291024 3280872 3 --------------------------------------- 為什麼free之後3還一樣是3呢? 拜託大家幫我解答... 我想測試看看free()之後的改變 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.73.175.6

06/09 21:49, , 1F
因為free太懶了(誤
06/09 21:49, 1F

06/09 22:20, , 2F
不要問,很可怕
06/09 22:20, 2F

06/09 22:21, , 3F
要不要在free(ptr);後加上*ptr=1;
06/09 22:21, 3F

06/09 22:31, , 4F
那你覺得要顯示什麼才是對的?
06/09 22:31, 4F

06/09 22:37, , 5F
free 以後的記憶體空間就別存取了吧
06/09 22:37, 5F

06/09 22:47, , 6F
Quote(#1DKhEJMu): james732:free的意思有點類似租房子
06/09 22:47, 6F

06/09 22:48, , 7F
跟房東解約 解約後你當然還是知道房子在哪 想要偷偷住也
06/09 22:48, 7F

06/09 22:48, , 8F
是做得到 至於房東會不會生氣就是另外一回事了...XDDD
06/09 22:48, 8F

06/09 23:47, , 9F
我正想再推一次租房子的比喻,感謝樓上幫我挖出來XDDD
06/09 23:47, 9F

06/10 00:23, , 10F
(_m_)
06/10 00:23, 10F

06/10 01:56, , 11F
我一看到也是先想到租房子 被板上洗腦了XD
06/10 01:56, 11F
文章代碼(AID): #1Fqr3OHB (C_and_CPP)