【发布时间】:2014-05-02 00:03:49
【问题描述】:
我试图弄清楚如何为字符指针数组(字符串文字)释放内存,但我不太明白语法。这就是我声明和初始化数组的方式。
char * words[] = { "THESE", "ARE", "SOME", "WORDS" };
我试过这样做......
free(words);
还有这个……
for(i = 0; i < 4; i++) {
free(words[i]);
}
但第一个导致 glibc 出现某种无效指针错误,第二个导致分段错误。
那么释放这些内存的正确方法是什么?
【问题讨论】:
-
这是一个静态初始化的数组。无论如何,你不应该释放它。
-
不要
free你没有malloc的东西。 -
“什么是正确的方法”?没做什么。它会自动释放。