C++ 与C语言 动态分配内存的区别

转载 2016年06月01日 15:23:24
#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语言:动态分配内存,malloc()与realloc()区别

C语言:动态分配内存,malloc()与realloc()区别
  • xyphf
  • xyphf
  • 2017年07月24日 14:44
  • 152

c语言 什么时候需要动态分配内存?

我讲解一下c语言中动态分配内存的函数,可能有些初学c语言的人不免要问了:我们为什么要通过函数来实现动态分配内存呢?系统难道不是会自动分配内存吗?? 既然有人会问这样的问题,那么我在这里好好的讲解一下...

关于c语言动态分配内存的知识点的总结(总结)

内存分配函数的使用(自己总结的内存分配相关的知识,部分参考网上的知识) 1 malloc函数是动态分配一段堆上内存,并且返回该内存的首地址,该函数不对申请的空间进行清空操作;    malloc是...

android ndk 03 C语言 动态分配内存,字符串操作

动态分配内存,字符串操作动态内存分配在说动态内存分配之前先说下 静态内存分配 void main(){ //静态内存分派 int a[1024*1024*10];//申请10m ...

C语言-动态分配内存对任意个字符串进行排序

//动态分配内存对输入的任意字符串排序 #include #include #include #include //比较大小 //int str_compare(const char* src,co...

C和C++中动态分配内存的区别

c是malloc和free, c++是new和delete,(C++面向对象的) 区别如下: (1)new、delete 是操作符,可以重载,只能在C++中使用。 (2)mal...

C语言中的动态分配内存空间以及内存泄露

ISO C说明了3个用于存储空间动态分配的函数,这三个函数简称为alloc函数。 函数原型: #include void *malloc( size_t size ); void *calloc...

c++特有的动态分配内存new操作符

在C语言中我们使用malloc()、calloc()、realloc()库函数来动态分配内存,当然也适用于C++,但在C++中有更好的方法———new运算符。...

C++动态分配内存new delete

动态内存分配 1.堆内存分配 : C/C++定义了4个内存区间:代码区,全局变量与静态变量区,局部变量区即栈区,动态存储区,即堆(heap)区或自由存储区(free store)。 堆的概念...

C++随记(三)---动态分配内存问题(2)

作者:teeyohuang 邮箱:teeyohuang@163.com 本文系原创,供交流学习使用,转载请注明出处,谢谢 C++随记(三)---动态分配内存问题(2)      上...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ 与C语言 动态分配内存的区别
举报原因:
原因补充:

(最多只允许输入30个字)