如何使用此 C 代码在 C++ 中分配内存:
airline* myairline = ( airline *) malloc(sizeof( airline));
是吗:
airline* myairline = new myairline
?
如果是这样,为什么我们不需要指定大小?
如何使用此 C 代码在 C++ 中分配内存:
airline* myairline = ( airline *) malloc(sizeof( airline));
是吗:
airline* myairline = new myairline
?
如果是这样,为什么我们不需要指定大小?
C
和C++
代码,特别是内存管理功能,不应该混在一起!
打电话给( airline *) malloc(sizeof( airline));
你实际上是在犯一个大错误。
C++
使用 new 关键字分配内存。它确保所有成员字段的正确初始化,运行适当的构造函数,初始化列表,换句话说,完成所有应该为对象完成的事情。
如果你malloc
记住一个对象,那么它很有可能实际上是不可用的。
您无需指定大小。运算符 new 分配足够的内存来保存航空公司类型的对象,构造该对象并为您提供指向它的指针。
Opeeator delete 也不需要大小。
在 C++ 中使用“new”语句分配动态内存始终是一个好主意,因为“new”语句在发生错误时会引发异常。分配内存的大小将是航空公司对象的确切大小。
希望这可以帮助!
在 new operator 内部,它会自动计算大小,所以你不需要自己计算。