c++动态分配内存 动态申请数组

来源:互联网 发布:音频裁切软件 编辑:程序博客网 时间:2024/06/01 10:34

#include <stdlib.h>

#include <iostream>
using std::cout;
using std::endl;

//malloc/free 与new/delete的差别是什么?
//1.malloc/free是c的标准库函数
//  new/delete是表达式
//2.malloc在开辟空间时,并不会对空间进行初始化
//  new在开辟空间时,是可以进行初始化的
//

int main()
{
     int *p1=(int *)malloc (sizeof(int));//申请堆空间内存
     *p1=10;
     cout << "*p1 = " << *p1 <<endl;
     free(p1);//回收空间

     int *p2=new int(10);//动态申请存储空间并赋初值10
//int *p2=new int;//只申请空间并初始化为0
     cout << "*p2 = " << *p2 <<endl;
     delete p2;

     int *p3 = (int * ) malloc (sizeof(int) * 10);
     free(p3);

     int *p4 = new int[10];//数组开辟空间
     for(int i=0;i<10;i++)
     {
         cout<<p4[i]<<" ";
     }
     delete []p4;//释放new的空间

     return 0;
}

运行结果为

原创粉丝点击