这可能是新手的错误,但我很感激任何关于我到底做错了什么的提示。
代码:
使用Valgrind,我仍然发现我在堆中有内存泄漏 - 我该如何解决这个问题? 我怀疑我分配了太多的空间 - 但是,我该如何释放我不必要的空间呢? 感谢任何提示!
代码:
int main()
{
int i =0;
char ** nameslist;
nameslist = malloc(5 * sizeof(char*));
for (i=0; i <5; i++)
{
nameslist[i]=malloc((20+1)*sizeof(char));
}
nameslist[0]="John";
nameslist[1]="Adam";
nameslist[2]="Nick";
nameslist[3]="Joe";
nameslist[4]="Peter";
for (i=0; i <5; i++)
{
free(nameslist[i]);
}
free(nameslist);
return 0;
}
使用Valgrind,我仍然发现我在堆中有内存泄漏 - 我该如何解决这个问题? 我怀疑我分配了太多的空间 - 但是,我该如何释放我不必要的空间呢? 感谢任何提示!
free
释放常量也不是一个好主意,这个问题也得到了解决。 - Joachim Isaksson