gpt4 book ai didi

c - 为什么会发生这种内存泄漏?

转载 作者:太空宇宙 更新时间:2023-11-04 05:57:28 26 4
gpt4 key购买 nike

我已将内存泄漏隔离到这些行:

char* word_ptr;
while(read_word(fp, word)) {
word_ptr = strdup(to_lower_case(word));
// other stuff happens, loop closes properly, etc.

因为我没有 malloc word_ptr,所以我不需要释放它。如果你需要小写函数,就在这里:

char* to_lower_case(char *string) {
for (int i = 0; i < strlen(string); i++) {
string[i] = tolower(string[i]);
}

return string;
}

最佳答案

Since I don't malloc word_ptr ...

但是strdup()malloc()分配内存,所以都是一样的。

来自 man 3 strdup:

Memory for the new string is obtained with malloc(3), and can be freed with free(3).

关于c - 为什么会发生这种内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24684437/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com