【发布时间】:2019-04-04 07:59:05
【问题描述】:
释放两次由glibg_malloc函数分配的缓冲区是安全的还是被禁止的?
char *buffer = g_malloc(10);
g_free(buffer);
g_free(buffer);
【问题讨论】:
-
不确定
glib,但你为什么要这样做? -
你为什么想知道?你有什么问题导致你问这个问题?也许你应该直接问这个问题?
-
一般来说,你不能释放你没有明确分配的内存。一旦你调用了一次
g_free,指针指向的内存就不再被分配。 -
感谢您的回复,我正在研究现有代码,所以我只需要知道这一点。
-
@Someprogrammerdude 我编辑了问题以显示缓冲区也由 g_malloc 分配。您回答的第二部分是我的问题 - 它是否危险,或者可能以某种方式使您可以安全地做两次。
标签: c memory-management glib double-free