c ++内存泄漏结构?

时间:2010-11-13 00:15:05

标签: pointers

假设我将内存分配给指向结构的指针:

CatStructure * cat; // assume a CatStructure has name and weight

假设我将cat初始化为:

cat->name = "pippy";
cat->weight = 100;

如果我保存对cat-> name和cat-> weight的引用,是否仍需要保存对cat的引用?换句话说,是否有必要保存对结构指针的引用如果我已经保存了对其成员的引用?

2 个答案:

答案 0 :(得分:1)

CatStructure *cat;不为给定的结构分配内存,它只是为您提供存储指针引用的位置。我们会说你知道这一点,而且你new正确地分配了内存。

每个new必须与对delete的相应调用匹配,否则泄漏内存。从技术上讲,如果你正确地保存对其中一个成员的引用,你可以做一些指针数学来恢复对结构的引用,但这是不必要的钝。只需保存指针,以便以后清理它。

答案 1 :(得分:0)

如果删除结构,对其指针或成员的任何引用将不再有效。那些无效的指针/引用被称为'悬空'。

相关问题