<分区>
有什么区别:
p = (int*) malloc (5*sizeof(int));
对比
int *ptr = new int[5];
最上面的 C 版本的内存分配是指向一个指针以在内存中为 5 个整数创建一个点吗?那么最下面是C++的版本?它们出现在内存中的什么地方(如果出现的话)。
标签 c++ c pointers malloc allocation
<分区>
有什么区别:
p = (int*) malloc (5*sizeof(int));
对比
int *ptr = new int[5];
最上面的 C 版本的内存分配是指向一个指针以在内存中为 5 个整数创建一个点吗?那么最下面是C++的版本?它们出现在内存中的什么地方(如果出现的话)。
最佳答案
两者都分配大小字节的未初始化存储并返回指向它的指针。这两个片段都适用于 C++,但 new
片段专用于 C++。两者的实现都取决于编译器。使用malloc()
函数时,始终使用free()
函数来释放内存。使用 new
运算符时,始终使用 delete
运算符来释放内存。切勿混用。
new
可以提供一些其他功能,例如重载和调用非基本类型构造函数。 See .
在您给出的两个示例中,内存将按顺序分配。
关于c++ - 这两行代码有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57632023/