消除C++内存泄漏

Eliminating Memory Leak in C++

本文关键字:泄漏 内存 C++ 消除      更新时间:2023-10-16

我创建了一个名为子字符串的函数,并通过以下方式使用它:-

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]  = '';
return s;
}
char *game1 = new char[10]
char* a0 = substring(csv, 0, x[0]);
game1 = a0;
//delete[] a0;
delete[] game1;

但是,通过瓦尔格林德检查后,它会导致一些内存泄漏。当我删除a0时,程序不起作用。我该如何处理这个问题?谢谢。

我做了一个编辑:-

char* game1 = substring(csv, 0, x[0]);
delete[] game1;

问题近在咫尺char *game1 = new char[10]您已将字符 [10] 分配给游戏 1,但您从未删除过。

尝试添加delete[] game1;

以前

game1 = a0;

实际上,您不需要将该字符[10]分配给game1,我不知道您为什么要这样做。删除它也可能有效。 只是声明为

char *game1;