1.malloc
int *p = (int *)malloc(sizeof(int))
1.calloc
void *calloc( size_t num, size_t size );
函数返回一个指向num 数组空间,每一数组元素的大小为size。如果错误发生返回NULL。
2.malloc
void *malloc( size_t size );
函数指向一个大小为size的空间,如果错误发生返回NULL。
3.realloc
void *realloc( void *ptr, size_t size )
函数将ptr 对象的储存空间改变为给定的大小size。 返回值是指向新空间的指针,如果错误发生返回NULL。
4.总结:
1.函数使用需包含一个头文件#include<stdlib.h>
2.malloc函数会返回开辟空间的首地址
3.由malloc动态申请的内存空间是堆式的内存空间。而静态的内存的空间是栈式的
4.当需要的内存过大,或者不确定内存需求时,则使用动态内存开辟空间
2.new
1.new operator(new表达式)
class A{
int a;
};
A * array=new A[101];
申请内存和初始化
2.operator new (new操作符)
类似于malloc,只负责申请内存
A* array=(A*) ::operator new(sizeof(A) *101);
3.placement new
用