免费获得一致的动态分配的 char 指针?

Free for consistent dynamically allocated char pointers?

我有一个包含一堆 char 指针的结构,其值在整个程序的生命周期中使用。大多数在每次迭代时都会被覆盖。

除了程序退出之外,是否应该在任何时候释放这些值?在用 strdup("new value") 覆盖之前是否应该释放 char 指针中的值?

@some-programmer-dude 是的,如果你的程序像服务器一样运行,那么没有 free 就会有内存泄漏。

顺便说一句,无论你是否调用free(),程序退出后所有内存都会被释放。

你已经得到了答案。我只是提供更多信息和参考。

POSIX 标准的手册页 strdup

我们开始了,

   The strdup() function returns a pointer to a new string which is a
   duplicate of the string s.  Memory for the new string is obtained
   with malloc(3), and can be freed with free(3).