-1

如何使用此 C 代码在 C++ 中分配内存:

airline* myairline = ( airline *) malloc(sizeof( airline));  

是吗:

airline* myairline = new myairline?

如果是这样,为什么我们不需要指定大小?

4

4 回答 4

2

CC++代码,特别是内存管理功能,不应该混在一起!

打电话给( airline *) malloc(sizeof( airline));你实际上是在犯一个大错误。

C++使用 new 关键字分配内存。它确保所有成员字段的正确初始化,运行适当的构造函数,初始化列表,换句话说,完成所有应该为对象完成的事情。

如果你malloc记住一个对象,那么它很有可能实际上是不可用的。

于 2013-07-07T07:09:59.503 回答
1

您无需指定大小。运算符 new 分配足够的内存来保存航空公司类型的对象,构造该对象并为您提供指向它的指针。

Opeeator delete 也不需要大小。

于 2013-07-07T07:05:32.243 回答
0

在 C++ 中使用“new”语句分配动态内存始终是一个好主意,因为“new”语句在发生错误时会引发异常。分配内存的大小将是航空公司对象的确切大小。

希望这可以帮助!

于 2013-07-07T07:03:55.520 回答
0

在 new operator 内部,它会自动计算大小,所以你不需要自己计算。

于 2013-07-07T07:12:23.900 回答