- C中开辟空间:
malloc()方法,realloc()方法
void *malloc( size_t size );
//提供需要开辟的空间大小,返回空间位置void*指针
void *realloc( void *memblock, size_t size );
//提供原空间内存地址,需要的新空间大小,返回新空间位置void*指针
释放空间:
free()方法
void free( void *memblock );
//释放一整块内存空间
- C++中开辟空间:
new标识符使用:
int* a = new int(3);
//开辟一个整型空间,并初始化为3
int* arr = new int[10];
//开辟一个整型数组空间,长度为10
释放空间:
delete标识符
delete a;
//释放一块变量空间
delete[] arr;
//释放一块数组空间
- 其区别体现在以下方面
- malloc/realloc是一个函数,new是一个标识符/关键字
- malloc不能在开辟时初始化,new可以
- malloc开辟失败返回NULL,new失败抛出异常
- malloc不能开辟常量内存块,new可以
- malloc可以指定大小开辟空间,new只能开辟指定数据类型大小空间
- malloc返回void*,new返回void
- malloc无法重载,new可以
- new底层是使用malloc实现的



