Chinaunix
标题:
C语言中const修饰的char *需要free么?static呢?
[打印本页]
作者:
jjj137
时间:
2009-01-18 22:44
标题:
C语言中const修饰的char *需要free么?static呢?
RT,不太明白C语言的内存分配……也可能是glib的问题……
我以为const要释放,可是报错double free or corruption了……
const gchar *au [] = {
"Some text",
NULL
};
g_free (au);
PS:有没有讲内存分配的好书或者文章啊?
作者:
术士
时间:
2009-01-18 22:45
不需要
作者:
eveson
时间:
2009-01-18 22:46
是的,没有malloc就不需要free
作者:
79hy
时间:
2009-01-18 23:55
呵呵。只是变量分配在静态区还是变量区。程序退出就自动释放了。
作者:
scutan
时间:
2009-01-19 00:00
>>有没有讲内存分配的好书或者文章啊
《C专家编程》《深入理解计算机系统》
作者:
samon_fu
时间:
2009-01-19 04:55
man malloc
man free
哪里又需要看书了?不嫌麻烦啊。man手册啊man,man,man
作者:
smartlinux
时间:
2009-01-19 09:57
看书可以系统的理解
作者:
jjj137
时间:
2009-01-19 20:13
原帖由
eveson
于 2009-1-18 22:46 发表
是的,没有malloc就不需要free
那char *也不用free了?为什么char * free的时候不出错,但是加上const就出错呢?
作者:
beepbug
时间:
2009-01-19 20:23
存储分配是很大很复杂的一块学问,靠man是不行的。
作者:
beepbug
时间:
2009-01-19 20:24
1)存储分配是很大很复杂的一块学问,靠man是不行的。
2)只有动态分配的空间才有必要回收,实际上也才有可能回收。
作者:
xiexiecn
时间:
2009-01-19 20:56
标题:
回复 #1 jjj137 的帖子
搞清楚这些概念:全局变量,局部变量,堆,栈,数据段,代码段。内存的问题就清楚了。
作者:
MMMIX
时间:
2009-01-19 21:00
原帖由
eveson
于 2009-1-18 22:46 发表
是的,没有malloc就不需要free
That's it. 需不需要 free 取决于你的内存是怎么来的。
作者:
langue
时间:
2009-01-20 12:05
先说你想 free() 谁?
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2