a****n 发帖数: 20 | 1 下面这个code 有内存泄露吗?
void cpy(Vertex**& d , Vertex**& s, int n_vertices)
{
for ( unsigned int i = 0; i < n_vertices; i++)
{
d[i] = new Vertex(); // 这两句有没有导致内存泄露呢? default
constructor 产
//生的object不是没有指针指着了?
*d[i] = *(s[i]); //
}
}
改成这样是不是就可以了?
void cpy(Vertex**& d , Vertex**& s, int n_vertices)
{
for ( unsigned int i = 0; i < n_vertices; i++)
{
d[i] = new Vertex; // 不用default constructor, 只产生一指针指向一块空
间
*d[i] = *(s[i]) | P********e 发帖数: 2610 | 2 void cpy(Vertex**& d , Vertex**& s, int n_vertices)
{
for ( unsigned int i = 0; i < n_vertices; i++)
{
*d[i] = *(s[i]);
}
}
下面这个code 有内存泄露吗?
void cpy(Vertex**& d , Vertex**& s, int n_vertices)
{
for ( unsigned int i = 0; i < n_vertices; i++)
{
d[i] = new Vertex(); // 这两句有没有导致内存泄露呢? default
constructor 产
//生的object不是没有指针指着了?
*d[i] = *(s[i]); //
}
}
改成这样是不是就可以了?
void cpy(Vertex**& d , Vertex**& s, int n_vertices)
【在 a****n 的大作中提到】 : 下面这个code 有内存泄露吗? : void cpy(Vertex**& d , Vertex**& s, int n_vertices) : { : for ( unsigned int i = 0; i < n_vertices; i++) : { : d[i] = new Vertex(); // 这两句有没有导致内存泄露呢? default : constructor 产 : //生的object不是没有指针指着了? : *d[i] = *(s[i]); // :
| r****r 发帖数: 115 | 3 1和2有区别吗?
不都是调用defaul constructor?
【在 a****n 的大作中提到】 : 下面这个code 有内存泄露吗? : void cpy(Vertex**& d , Vertex**& s, int n_vertices) : { : for ( unsigned int i = 0; i < n_vertices; i++) : { : d[i] = new Vertex(); // 这两句有没有导致内存泄露呢? default : constructor 产 : //生的object不是没有指针指着了? : *d[i] = *(s[i]); // :
| i*****f 发帖数: 578 | 4 new了就得delete。
【在 a****n 的大作中提到】 : 下面这个code 有内存泄露吗? : void cpy(Vertex**& d , Vertex**& s, int n_vertices) : { : for ( unsigned int i = 0; i < n_vertices; i++) : { : d[i] = new Vertex(); // 这两句有没有导致内存泄露呢? default : constructor 产 : //生的object不是没有指针指着了? : *d[i] = *(s[i]); // :
|
|