[問題] mem_alloc及mem_free的對應問題
#include<stdlib.h>
#include<stdio.h>
/*
要注意mem_alloc及mem_free的對應,要用方法發現或防止忘了mem free。
*/
void mem_free(int *);
int main(void)
{
int *ptr;
ptr=(int *)malloc(sizeof(int));
*ptr=1000;
printf("%d\n",*ptr);
mem_free(ptr);
*ptr=5;
printf("%d\n",*ptr);
system("pause");
return 0;
}
void mem_free(int *ptr1)
{
if(ptr1!=NULL)
{
free(ptr1);
ptr1=NULL;
}
//*ptr1=5;
}
此程式出來的答案是
1000
5
但是有疑問的就是在主程式的mem_free(ptr);下面
明明已經把mem_free了
為何可以使用*ptr=5 設值
但若是在mem_free(int *ptr1) function中的最後
若是設成*ptr1=5 卻會interrupt ?
這是什麼原因呢???
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.9.4.125
推
12/30 19:33, , 1F
12/30 19:33, 1F
→
12/30 19:33, , 2F
12/30 19:33, 2F
→
12/30 19:34, , 3F
12/30 19:34, 3F
推
12/30 22:34, , 4F
12/30 22:34, 4F
→
12/30 22:35, , 5F
12/30 22:35, 5F
→
12/30 22:35, , 6F
12/30 22:35, 6F
→
12/30 22:36, , 7F
12/30 22:36, 7F
→
12/30 22:37, , 8F
12/30 22:37, 8F
→
12/30 22:37, , 9F
12/30 22:37, 9F
推
12/30 23:14, , 10F
12/30 23:14, 10F
→
12/30 23:14, , 11F
12/30 23:14, 11F
→
12/30 23:15, , 12F
12/30 23:15, 12F
→
12/30 23:15, , 13F
12/30 23:15, 13F
→
12/30 23:27, , 14F
12/30 23:27, 14F
→
12/30 23:27, , 15F
12/30 23:27, 15F
推
12/30 23:39, , 16F
12/30 23:39, 16F
推
12/31 00:18, , 17F
12/31 00:18, 17F
→
12/31 00:19, , 18F
12/31 00:19, 18F
→
12/31 00:19, , 19F
12/31 00:19, 19F
→
12/31 00:20, , 20F
12/31 00:20, 20F
→
12/31 00:20, , 21F
12/31 00:20, 21F
→
12/31 00:21, , 22F
12/31 00:21, 22F
→
12/31 00:22, , 23F
12/31 00:22, 23F
→
12/31 00:22, , 24F
12/31 00:22, 24F
→
12/31 01:22, , 25F
12/31 01:22, 25F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章