回 帖 发 新 帖 刷新版面

主题:C++的问题

struct Parking
{
Car data;//Car是自定义类
}
请问
Parking L;

Parking *L;
L=(Parking *)malloc(sizeof(Parking));
的区别。

回复列表 (共2个回复)

沙发

说一下我的第一反应啊,呵呵。
主要区别是,在释放的时候,你定义的对象由于是分配在栈中,所以当离开作用域后,编译器会自动调用析构函数帮你释放。
但是你new出来的对象由于存放在堆中,所以你需要在使用完毕后,自己调用delete释放。
在你的例子里,要用free
希望有高手给出更多的东西.

板凳

Parking L时L在栈区没有分配内存空间,而下面的方式中,L已有了内存空间

我来回复

您尚未登录,请登录后再回复。点此登录或注册