malloc/free
#include <iostream> int main(void) { int* p = (int*)malloc(4); *p = 10; free(p); return 0; }
new/delete
#include <iostream> int main(void) { int* p = new int; *p = 0; delete p; const char* s = new char[4]; s = "hhh"; delete[] s; return 0; }
有关堆空间的初始化
#include <iostream> int main(void) { int* p = (int*)malloc(sizeof(int) * 10); //在windows平台下,*p没有被初始话,也就是说,malloc分配内存空间时 //并不支持自动初始化内存。 memset(p, 1, 40); //将首地址p开始的每个字节设置为1,注意是每个字节 int* p1 = new int; //未初始化 int* p2 = new int(); //初始化为0 int* p3 = new int(5); //初始化为5 int* p4 = new int[4]; //数组中的元素未初始化 int* p5 = new int[4](); //数组每个元素初始化为0 int* p6 = new int[4]{}; //数组每个元素初始化为0 int* p7 = new int[4]{5};//除了第一个元素是5,其他为0 return 0; }