C++内存动态分配

C++内存分配初探

C++在内存分配方面采用了两种机制,一种是C语言之前的形式的malloc/free,另一种是C++自己的new/delete。

一、malloc/free:

1、malloc函数

         原型:

                void *malloc(size_t size );     

		这个函数只有一个参数,该参数是我们制定需要申请能的内存空间的大小。申请成功返回指针,申请失败,返回null。
	格式:
		void *p = malloc(seize);

2、free函数

原型:
	void free(void *memblock);
	这个函数同样只有一个参数,该参数是malloc申请的对应的指针,在释放内存时,一定要先对内存是否为空就行判断。
    格式:
	free p;

二、new/delete:

1、new函数

原型:
void *operator new[](
   std::size_t _Count
)throw(std::bad_alloc);
void *operator new[](
   std::size_t _Count,
   const std::nothrow_t&
) throw( );
void *operator new[](
   std::size_t _Count, 
   void* _Ptr
) throw( );
格式:
char *pchr = new char; //申请单个内存空间
char *pstr = new char(size); //申请多个内存空间

2、delete:

原型:
void operator delete(
   void* _Ptr
) throw( );
void operator delete(
   void *, 
   void *
) throw( );
void operator delete(
   void* _Ptr,
   const std::nothrow_t&
) throw( );
格式:
delete pchr; //释放单个内存空间

原型:
void operator delete[](
   void* _Ptr
) throw( );
void operator delete[](
   void *, 
   void *
) throw( );
void operator delete[](
   void* _Ptr, 
   const std::nothrow_t&
) throw( );
        格式:
delete [ ]pstr; //释放多个内存空间 

三、总结

C++动态内存申请成功之后,未初始化之前,在内存中的结构均以FDFDFDFD ......n*CD......FDFDFDFD的形式表示。在C++内存动态申请中,malloc/free与new/delete,必须成对存在且要一一对应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值