gpt4 book ai didi

c++ - 列表c++的内存泄漏

转载 作者:行者123 更新时间:2023-11-30 05:26:22 24 4
gpt4 key购买 nike

该函数的思想是将原始列表划分为 X 列表,所有列表都聚集在一个数组中,不删除也不创建新的单元格。该功能很好地完成了他的工作,但是当我使用 valgrind 或 Dr. Memory 检查泄漏时,它似乎有一些泄漏问题......

List* function (List & todivide, int t = 2){
Cell* aux = todivide.l; // l is the head of the list
int tam = (todivide.size()/t == 0) ? todivide.size()/t : todivide.size()/t+1;
List* arrayoflists = new List [tam];

for(int i = 0, k = 0; aux != 0; i++){
if(i%t == 0){
arrayoflists[k].l = aux;
aux = aux->sig;
k++;
}
if(i%t == t-1){
Cell* p = aux->sig;
aux->sig = 0;
aux = p;
}
}
l.l = 0;

return arrayoflists;
}

我没有发现任何问题...有什么想法吗?

提前致谢

最佳答案

函数内部没有任何问题,但由于您返回一个您使用 new 创建的指针,您可能会忘记在函数外部使用它时删除返回的指针。

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

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