c语言关于内存释放问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 08:14:50
什么是 动态分配的内存呢?
例如:char* buf = new char[100];
使用结束时需要释放内存不?咋释放?谢谢
希望高手们能给出一个标准的答案,并简单说说原因。谢谢
到底是free还是delete,我都糊涂了。可否说说原因

malloc,free是c语言中用法

new,delete是c++中用法

都是成对的,你用了new释放就用delete好了

申请了内存不用了的话一定要释放

否则会有内存泄露,系统内存会越来越少

早期 c 语言中分配内存用 malloc, 释放使用 free;
new delete 主要在c++中引入,以支持对象的动态分配、删除

总结起来:
用malloc分配,用free释放
用new分配,用delete释放
用new [] 分配,用delete []释放!

以上成对使用,不用混合使用!

所以
char* buf = new char[100];
删除用 delete []buf;

这是C++的用法,应该用delete
在C中用malloc开辟内存空间,用free释放。
本题:delete []buf

注意:delete buf是错误的!!!因为delete buf只是删除了开辟的内存空间的第一个地址,后面的都没有释放!

需要释放的,要不内存泄漏
free(buf);

你这应该是C++中的用法,如此应该用delete()释放

free