#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
int main(void)
{
//malloc和free用于一般类型的堆分配和释放 //是函数 要分配 函数栈帧 执行效率是比较低的
//new和delete可以用于所有类型的堆分配和释放 //是运算符 执行效率比较高
int *p = new int(8);
cout << *p << endl;
int *p1 = new int[5]; //数组是不能初始化的
int *p2 = (int *)malloc(sizeof(int)); //malloc返回的是void*所以要进行强制类型转换
int *p3 = (int *)malloc(sizeof(int)*10); //开辟10个元素的int内存
delete p; //free(p)
delete [] p1; //free(p1)
free(p2); //delete p2 //基础类型是可以混合搭配的 除了类之外
delete p3;
system("pause");
return 0;
}