【发布时间】:2014-06-26 15:34:42
【问题描述】:
我在使用 C++ 删除时遇到问题。我不确定我是否理解何时泄漏内存以及何时不泄漏。但是根据 Visual Studio 有泄漏。
这是泄漏内存吗?实际的方法更大,我想使用 c 作为结构的一部分。
char *c=copio("hola");
char *copio(char * c1)
{
char * ret=new char[strlen(c1)+1];
strcpy(ret,c1);
return ret;
};
还有这个?这种情况下aux是辅助的,所以离开大方法的时候就不用了
archivo *aux=ultimoArchivo(m->listaArchivos);
archivo * ultimoArchivo(archivo* lista){
if(lista==NULL){
return NULL;
}else{
if(lista->sig==NULL){
return lista;
}else{
return ultimoArchivo(lista->sig);
}
}
}
谢谢
【问题讨论】:
-
这里没有足够的信息来决定您是否泄漏内存。如果你从不删除
copio分配的内存,那么是的,你泄漏了它。也就是说,没有理由使用char*作为字符串或编写自己的链表,只需使用标准库即可。 -
天哪。您在使用 C++ 时没有使用正确的
string类?有什么理由吗? -
你考虑过使用 C++11 智能指针吗?
-
这是一个学校项目,我们不允许使用任何这些东西。不过谢谢
标签: c++ pointers memory-leaks