【发布时间】:2011-06-23 09:34:59
【问题描述】:
我有一个经常使用char *str[xx] 员工的C 程序。
一些字符串是使用赋值运算符(=)填充的,不需要被释放。
但是其他一些(在同一个数组中)使用strdup() 填充,需要在程序结束时释放:
char *str[10];
str[i]="你好";
str[k]=strdup("hi");
两个字符串指针都不为空,释放str[i]自然会产生“seg fault”。
我的问题是,在我的程序结束时,我不知道哪个指针指向由 strdup() 生成的字符串。你能帮我找到strdup生成的字符串以便我可以释放它们吗?
谢谢
【问题讨论】:
-
程序结束时不需要释放 strdup() 内存。 exit() 时会自动释放内存。