主题:Free()有作用么?
Llong&Yyuan
[专家分:10] 发布于 2008-03-13 20:50:00
char *p;char a[]="hello" p=a; printf("p_address: %x\n",p);
char *p; char a[]="hello" p=a; free(p);printf("p_address: %x\n",p);
这两个结果是相同的。。怎么才能释放掉。释放掉的结果应该是什么
回复列表 (共2个回复)
沙发
neulinux [专家分:420] 发布于 2008-03-13 21:11:00
看了你的问题,建议你参考C语言中有关内存分配的部分,和字符串的相关章节。如下代码能够说明一些问题,仅供你参考,希望有帮助。
char *p;
char a[]="hello";
printf("p_address: %x\n",p);
p=(char*)malloc(6*sizeof(char));
memcpy(p, a, 6);
printf("p_address: %x\n",p);
free(p);//通常不会影响p的值,而是释放p指向的空间。
printf("p_address: %x\n",p);
板凳
lxlll [专家分:0] 发布于 2008-03-17 21:25:00
打个比方吧
就是你(数据),电脑(旅店老板)给你开了个房间(内存),当你退房间(内存)的时候就要free()了,用电脑术语就是释放内存空间,
我来回复