C:删除一个结构?

前端之家收集整理的这篇文章主要介绍了C:删除一个结构?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含指针的结构:
struct foo
{
    char* f;
    int* d;
    wchar* m;
}

我有一个这些结构的共享指针向量:

vector<shared_ptr<foo>> vec;

vec在堆栈上分配.当它在方法结束时超出范围时,将调用其析构函数. (对吗?)然后将调用向量中每个元素的析构函数. (对吧?)调用delete foo是否只删除foo.f之类的指针,还是实际上从堆中释放了内存?

解决方法

delete foo;

删除分配给foo结构的内存,其中包括三个指针.但是如果你实现了一个明确删除它们的析构函数,指针本身指向的内存只会被删除.

猜你在找的C&C++相关文章