c++动态内存分配/new/malloc/realloc/calloc

C++动态内存分配

realloc() 函数用来重新分配内存空间,其原型为:

void* realloc (void* ptr, size_t size);

ptr 为需要重新分配的内存空间指针,size 为新的内存空间的大小。

newbase = (ElemType *)realloc(L.elem,(L.listsize+num)*sizeof(ElemType));
以L.elem为起始地址重新分配了一个大小为(L.listsize+num)*sizeof(ElemType)的内存空间,指针newbase指向这个内存空间的起始位置

分配内存空间使用malloc

void* malloc (size_t size);
int *p=(int *)malloc(4*sizeof(int))
p指向一个4个int大小的内存空间
calloc() 函数用来动态地分配内存空间并初始化为 0,其原型为:
void* calloc (size_t num, size_t size);
与malloc类似,只是多了初始化为0的步骤

回收:

free(ptr)

释放空间,不改变指针的值

ptr指针是指向动态分配的内存的指针。指针必须指向动态分配的内存空间,否则运行时很可能会出错。

C++新增动态分配内存:

动态分配内存:

new()

T *p = new T;

这样的语句会动态分配出一片大小为 sizeof(T) 字节的内存空间,并且将该内存空间的起始地址赋值给 p。

T *p =new T[N];

这样的语句动态分配出 N × sizeof(T) 个字节的内存空间,这片空间的起始地址被赋值给 p。

动态回收内存:

delete

delete p;

p 是指向动态分配的内存的指针。p 必须指向动态分配的内存空间,否则运行时很可能会出错。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值