[問題] 動態記憶體配置free()的問題
#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
06/09 21:49, 1F
→
06/09 22:20, , 2F
06/09 22:20, 2F
→
06/09 22:21, , 3F
06/09 22:21, 3F
推
06/09 22:31, , 4F
06/09 22:31, 4F
→
06/09 22:37, , 5F
06/09 22:37, 5F
→
06/09 22:47, , 6F
06/09 22:47, 6F
→
06/09 22:48, , 7F
06/09 22:48, 7F
→
06/09 22:48, , 8F
06/09 22:48, 8F
→
06/09 23:47, , 9F
06/09 23:47, 9F
→
06/10 00:23, , 10F
06/10 00:23, 10F
推
06/10 01:56, , 11F
06/10 01:56, 11F