gpt4 book ai didi

c++ - 消除C++中的内存泄漏

转载 作者:行者123 更新时间:2023-12-01 14:42:49 25 4
gpt4 key购买 nike

我创建了一个名为substring的函数,并以以下方式使用它:

char* substring(char* source, int startIndex, int endIndex)
{
int size = endIndex - startIndex + 1;
char* s = new char[size+1];
strncpy(s, source + startIndex, size);
s[size] = '\0';
return s;
}

char *game1 = new char[10]
char* a0 = substring(csv, 0, x[0]);
game1 = a0;
//delete[] a0;
delete[] game1;

但是,通过Valgrind检查内存泄漏后会导致内存泄漏。当我删除a0时,该程序无法正常工作。我该如何处理?谢谢。

我进行了编辑:-
char* game1 = substring(csv, 0, x[0]);
delete[] game1;

最佳答案

问题就近了
char *game1 = new char[10]您已将char [10]分配给从未删除的game1。

尝试添加
delete[] game1;
之前

game1 = a0;

实际上,您不需要将该char [10]分配给game1,我不知道您为什么这样做。删除它也可能起作用。
只是声明为
char *game1; 

关于c++ - 消除C++中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61947783/

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