gpt4 book ai didi

c - valgrind 显示未释放的内存

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

我的代码是:

bool check(const char* word)
{
char letter;
node* nodes = malloc(sizeof(node));
for (int i = 0; isalpha(word[i]) != 0; i++)
{
letter = tolower(word[i]);
if (i == 0)
{
if (root->children[(int)letter - 96] == NULL)
return false;
nodes = root->children[(int)letter - 96];
}
else
{
if (nodes->children[(int)letter - 96] == NULL)
{
return false;
}
nodes = nodes->children[(int)letter - 96];
}
}
if (nodes->value == 1)
return true;
else
return false;
free (&letter);
free (nodes->children);
free (&nodes->value);
free (nodes);
}

valgrind 说我没有释放第 4 行中创建的变量,但我不明白为什么,因为我在最后释放了它。

最佳答案

这些行

if (nodes->value == 1)
return true;
else
return false;

确保函数在它可以释放任何内存之前返回。

关于c - valgrind 显示未释放的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534648/

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