在堆上开辟内存不初始化,注意检查返回值类型
void * malloc(size_t size)
void *realloc(void *ptr,size_t size)不初始化
1.realloc可以调整以前由malloc或者calloc调用获得内存的大小
2.参数ptr必须是调用malloc或者calloc返回的内存指针
3.参数size既可以大于原来指向的内存块大小也可以小于
4.增大或减小的操作是原地,也就是相对于内存块当前地址地方进行的
5.如果不能这样做,realloc就把原来的数据复制到新的位置。
6.realloc的第一个参数是NULL,则它的作用和malloc一样
7.realloc的第二个参数是0,则它释放内存。
calloc函数分配并初始化内存块
void *calloc(size_t nmemb,size_t size)
功能与malloc非常相似,函数返回一个指向包含nmemb个元素的数组指针
数组中每个元素的大小为size个字节。检查返回类型
1.new和delete操作符不是函数,是c++运算符,所以不需要包含头文件
2.new返回指向新分配内存的指针,如果失败返回NULL
3.使用new得到的内存必须再调用delete释放给操作系统
4.malloc只可以用于一般性质的内存申请和释放,但new/delete 不但可以为普通数据类型分配内存,同时
还可以为对象分配释放内存
5.new分配的内存不能使用free函数来释放,同样malloc分配的内存不能使用delete来释放。