avatar
内存泄露了吗?# Programming - 葵花宝典
a*n
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])
avatar
P*e
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]); //
:

avatar
r*r
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]); //
:

avatar
i*f
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]); //
:

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。