c\c++ 用malloc类似动态分配内存有什么好处?

如题所述

第1个回答  推荐于2016-11-18
从堆(heap)中动态分配内存,有两个方式 new与malloc等;
new 只能以字节数为单位分配,而malloc还可以以块为单位
分配:块的大小,块数;
这两种方式各有特点,new是标准的关键字,可以直接用;
malloc是函数,要有头文件及库的支持。追问

块为单位 什么意思?能举个例子吗?

追答

我看了一下邦助,其实与new 没有大的区别。
calloc()才是分配块的。呵呵。

追问

不懂啊 块分配与字节分配 有什么区别?

追答

大区别也没有。如果块类型是blocktype,申请10块
blocktype * p=(blocktype *)calloc(sizeof(blocktype),10);
用new 就是:
blocktype *p=(blocktype *)new char[sizeof(blocktype)*10];

追问

栈里空间太小,放不下?堆空间 是某段程序运行完,用free或delete 就会释放?

本回答被提问者采纳
第2个回答  2011-11-18
实现链表等离散的数据结构必须要动态分配内存。
而且局部变量是存放在栈中的,栈的大小有限制,如果你有大量数据要放入内存,必须用malloc申请堆中的内存。
第3个回答  2011-11-19
提高程序运行效率
相似回答