免费获得一致的动态分配的 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).
我有一个包含一堆 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).