c++ 申请堆空间两种方式:malloc 和 new(malloc申请后必须free,new申请后之后必须delect)
int *p1 = (int *)malloc(sizeof(int))与int *p1 = new int;
都是在堆里申请四个字节的空间然后将栈里的指向int型的指针p1指向了堆空间
c++ 堆空间的初始化:
int *p1 = (int *)malloc(sizeof(int)); //*p1 未初始化
int *p2 = (int *)malloc(sizeof(int));
memset(p2,0,sizeof(int));//将*p2的每一个字节都初始化为0
int *p1 = new int; //未被初始化
int *p2 = new int(); //被初始化为0
int *p3 = new int(1); //被初始化为1
int *p4 = new int[3]; //数组元素未被初始化
int *p5 = new int[3](); //3个数组元素被初始化为0
int *p6 = new int[3]{}; //3个数组元素被初始化为0
int *p7 = new int[3]{1}; //数组首元素初始化为1,其余元素被初始化为0