1.new 和malloc的区别
malloc需要类型转换,new不需要
malloc是c函数,用free来释放内存,new是c++操作符,分配内存时会调用构造函数,用delete释放new分配的内存,delete也是c++操作符,会调用析构函数
尽可能使用new,因为malloc函数需要一定的执行时间
内存耗尽时,malloc会失败,并返回空指针,new会抛出异常
2.free一个指针2次有什么后果
segmentation fault
It *may* return harmlessly or give a segmentation error or something even nastier.
p = NULL;
free(p); //这样比较安全
interview question(c)
最新推荐文章于 2024-01-13 10:00:07 发布
本文探讨了C++中的new与C语言中的malloc之间的区别。new在分配内存时会自动调用构造函数并会在内存耗尽时抛出异常,而malloc则需要手动进行类型转换且在内存不足时返回空指针。此外还讨论了free与delete的不同之处,以及重复释放内存可能带来的后果。
976

被折叠的 条评论
为什么被折叠?



