C++ 与C语言 动态分配内存的区别
2016-06-01 15:23
232 查看
#include<iostream> using namespace std; struct book { int num; float price; struct book *next; } int main() { // C语言方法 /* malloc()开辟是没有类型的地址 */ void *p = malloc(sizeof(book)); /* 删除 */ frre(p); // C++ book *p = new book; delete p; /* 上面第种方式的区别是: 第一种方式是标准库函数 第二种是C++的操作符 由于malloc和free函数产生于C语言时代,因此不可用 在C++的对象中,因为对象的产生要调用构造函数。 消灭要用析构函数。malloc和free函数无法满足这 二个基本要求。 一般来说在C++由于有了new 和 delete ,malloc 和 free 函数就 不再使用了,所以在C++中对动态链表的操作将使用new 和 delete. */ system("pause"); }
相关文章推荐
- C++插入迭代器模板参数为何要有空格?
- c++之<assert.h>头文件的用法
- C++ STL
- 整型提升
- C++ Primer 中文版(第五版)课后题答案 事前说明
- C与C++之间相互调用
- 位图 c++ 位图排序
- vs配置动态链接库全解析
- The Biggest Changes in C++11 (and Why You Should Care)
- 不同类型的变量相加
- 【C++程序设计技巧】Pimpl机制
- 队列链式存储结构的C++模板类头文件源代码实现
- cpp 内嵌函数(lambda,struct)
- 1024. 科学计数法 (20)
- 【立项】最近要搞一个C++的游戏服务器demo
- 6个变态的C语言Hello World程序
- C语言中史上最愚蠢的Bug
- C++中嵌入python脚本(结巴分词)
- 从0开始如何开发贪吃蛇游戏
- 程序设计大赛