C/C++之动态内存分配

在C中用库函数malloc实现动态内存分配

malloc是在C语言中用于在程序运行时在堆中进行动态内存分配的库函数。
1、函数原型

#include <stdlib.h> 
void *malloc
(    
    size_t size 
);

返回值:
成功时,返回所分配存储空间的起始地址;返回值类型为void*,在C语言中可以把void*直接赋给具体的类型,但是在C++中必须进行强制类型转换。

在C中用库函数free释放动态内存

在C++中用new实现动态内存分配

一. 分配一个变量
对于 P = new T (T是任意类型名,P是类型为T *的指针),就是动态分配出一片大小为sizeof(T)字节的内存空间,并且将内存空间的起始地址赋值给P。eg:

int * pn;
pn = new int;
* pn = 5;

二. 分配一个数组
对于 P = new T[Na] (T是任意类型名,P是类型为T *的指针),就是动态分配出一片大小为N * sizeof(T)字节的内存空间,并且将内存空间的起始地址赋值给P。eg:

int * pn;
pn = new int[100];
pn[0] = 5;

返回值:
成功时,返回所分配存储空间的起始地址;返回值类型为T*。

在C++中用delete释放动态内存

注意:用“new”动态分配的内存空间一定要用“delete”运算符进行释放。
一. 释放一个变量
语法:

delete 指针;   //  该指针必须指向new出来的变量

eg:

int * p = new int;
*p =5;
delete p;

注意:一片空间不能被delete多次。
二. 释放一个数组
语法:(一定要加[ ])

delete [] 指针;   //  该指针必须指向new出来的数组

eg:

int * p = new int[20];
p[0] =5;
delete []p;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值