Chinaunix
标题:
这样释放内存可以吗?
[打印本页]
作者:
臭臭泥
时间:
2004-04-28 15:10
标题:
这样释放内存可以吗?
int main()
{
char *p,*p1;
p = (char *)malloc(1000);
p1 = p+500;
free(p1);
free(p);
return 0;
}
复制代码
系统内部是怎么执行的?
在free(p1)后,前500字节还能用吗?
作者:
FH
时间:
2004-04-28 15:20
标题:
这样释放内存可以吗?
没有free(p1)这种用法
作者:
windflowers1976
时间:
2004-04-28 15:32
标题:
这样释放内存可以吗?
#ifndef ptrFree
#define ptrFree(ptr) { if(ptr!=NULL)\
free(ptr);\
/*printf ( */if ( DEBUGMEM ) TraceLog ( stdout, __LINE__, "ptrFree", __FILE__, "ptrFree [addr=0x%x]\n", ptr );\
ptr=NULL;\
}
#endif
复制代码
作者:
臭臭泥
时间:
2004-04-28 16:53
标题:
这样释放内存可以吗?
[quote]
原帖由 "FH"]没有free(p1)这种用法[/quote 发表:
我是问如果这样用,系统是怎么处理的。
作者:
windflowers1976
时间:
2004-04-28 17:01
标题:
这样释放内存可以吗?
原帖由 "臭臭泥" 发表:
我是问如果这样用,系统是怎么处理的。
如何写听你,当不当看系统.
作者:
xhl
时间:
2004-04-28 17:11
标题:
这样释放内存可以吗?
类似C++的悬挂引用,肯定死掉了!
作者:
flw
时间:
2004-04-28 18:31
标题:
这样释放内存可以吗?
原帖由 "臭臭泥" 发表:
我是问如果这样用,系统是怎么处理的。
处理结果是异常,C/C++ 标准上没有讲异常时系统应该怎么办。
这就看你的编译器和系统是如何处理了。
不管它们如何处理,对你来讲都不过分,因为你没有按照要求做。
你可以试一下。
然后把结果告诉我们。
作者:
GrayGe
时间:
2004-04-28 19:22
标题:
这样释放内存可以吗?
取决与当时内存的快照、C库的实现以及CPU有无MMU。
作者:
tiansky
时间:
2004-04-28 19:56
标题:
这样释放内存可以吗?
不会出问题的.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2