malloc/free与new/delete
(1)new会抛异常,但是malloc不会抛异常;
(2)new/delete属于操作符,但是malloc/free属于函数;
(3)new申请空间的时候会调用构造函数进行初始化,malloc不会;
delete释放内存时会调用析构函数,free只是切断了指向关系;
malloc/calloc/realloc
malloc开辟空间时:若找不到,则返回NULL;
calloc:在内存中开辟空间并将其初始化为0;
realloc:重新开辟空间(1)当realloc开辟空间空间不足,找到新空间时:自动将原来指针所指向的内容拷贝到新空间,并且释放原来的空间;(2)当realloc开辟空间且找不到时,原空间不变。
注:动态内存开辟的空间位于堆上;
作者水平有限,若有问题请留言,谢谢!!!