假设动态构造一个int型数组:
int *p = (int *)malloc(int len);
1.malloc只有一个int型的形参,表示要求系统分配的字节数
2.malloc函数的功能是请求系统len个字节的内存空间,如果请求分配成功,则返回第一个字节的地址;如果分配不成功,则返回NULL
3.malloc函数只能返回第一个字节的地址(俗称干地址),因此需要把这个无实际意义的第一个字节的地址转化为一个有实际意义的地址。因此必须进行强制类型转换,告诉 编译器返回的到底是什么类型的地址。
通过malloc()手动动态分配的内存,必须通过free()手动释放。
A aa = new A();
类似于:
A *pa = (A *)malloc(sizeof(A));
跨函数使用内存,只能通过动态分配内存来实现。