C++内存分配和管理

本文详细介绍了C++中的内存管理,包括malloc, calloc, realloc, alloca的基本用法和特点,以及new和delete的操作过程。特别提到了alloca的栈上内存分配以及new运算符如何自动调用构造函数,delete如何调用析构函数。还讨论了使用'new this'的合法性及其注意事项。" 84311116,7845246,使用generateNumber()构造随机数学题,"['编程技巧', '算法生成', '数学教育', '随机生成']
摘要由CSDN通过智能技术生成

malloc、calloc、realloc、alloca
1.malloc:申请指定字节数的内存。申请到的内存中的初始值不确定。
2.calloc:为指定长度的对象,分配能容纳其指定个数的内存。申请到的内存的按bit初始化为 0。
3.realloc:更改以前分配的内存长度(增加或减少)。当增加长度时,可能需将以前分配区的内容移到另一个足够大的区域,而新增区域内的初始值则不确定。
4.alloca:在栈上申请内存。程序在出栈的时候,会自动释放内存。但是需要注意的是,alloca 不具可移植性, 而且在没有传统堆栈的机器上很难实现。alloca 不宜使用在必须广泛移植的程序中。C99 中支持变长数组 (VLA),可以用来替代 alloca。

malloc、free
用于分配、释放内存
malloc、free 使用
申请内存,确认是否申请成功
char str = (char) malloc(100);
assert(str != nullptr);
释放内存后指针置空
free§;
p = nullptr;

new、delete
1.new / new[]:完成两件事,先底层调用 malloc 分配了内存,然后调用构造函数&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源代码大师

赏点狗粮吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值