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