#include<iostream>
using namespace std;
//int main()
//{
// int* p = new int;//类型一定要对上, 也可以直接通过new int(5)对*p赋值为5;
// //int* p = (int*)malloc(sizeof(int));C的申请空间
// *p = 133;//写
// cout<<*p<<endl;//读
// delete p;
// return 0;
//}
int main()
{
int* p = new int[5];
//int*p=malloc(5*4);c申请数组;
//memset(p, 0, 5 * 4);//给连续的空间赋值 memory set
p[0] = 14;
p[1] = 15;
p[2] = 16;
cout << p[0] << endl << p[1] << endl << p[2] << endl;
delete[] p;//释放数组必须加[]
return 0;
}
* new delete 可以触发构造和析构,C语言则不行;指针声明和空间分配方式不同,使用完全相同,在C++里,除了对象空间申请之外,使用malloc与free是完全可以的。
这篇博客介绍了C++中使用`new`和`delete`进行动态内存分配和释放的基本操作,包括单个整数和整数数组的情况。强调了在C++中使用`new[]`和`delete[]`对数组进行管理的必要性,以及与C语言中`malloc`和`free`的区别。同时提到了构造和析构函数在动态内存管理中的作用。
525

被折叠的 条评论
为什么被折叠?



