这两行代码有什么区别

What is the difference between these two lines of code

本文关键字:代码 什么 区别 两行      更新时间:2023-10-16

两者有什么区别:

p = (int*) malloc (5*sizeof(int));

int *ptr = new int[5];

顶部一个 C 的内存分配版本是否为指针指向在内存中为 5 个整数创建一个点?那么底部是C++的版本?它们出现在内存中的哪个位置(如果有的话(。

两者都分配未初始化存储的大小字节,并返回指向它的指针。这两个片段都适用于C++,但new片段是C++独有的。两者的实现都取决于编译器。使用malloc()函数时,请始终使用free()函数来释放内存。使用运算符new时,请始终使用delete运算符来释放内存。切勿混合配对。

new可以提供一些其他功能,例如重载和调用非基元类型构造函数。看。

在您给出的两个示例中,内存将按顺序分配。