两者有什么区别:
p = (int*) malloc (5*sizeof(int));
与
int *ptr = new int[5];
顶部一个 C 的内存分配版本是否为指针指向在内存中为 5 个整数创建一个点?那么底部是C++的版本?它们出现在内存中的哪个位置(如果有的话(。
两者都分配未初始化存储的大小字节,并返回指向它的指针。这两个片段都适用于C++,但new
片段是C++独有的。两者的实现都取决于编译器。使用malloc()
函数时,请始终使用free()
函数来释放内存。使用运算符new
时,请始终使用delete
运算符来释放内存。切勿混合配对。
new
可以提供一些其他功能,例如重载和调用非基元类型构造函数。看。
在您给出的两个示例中,内存将按顺序分配。