C/C++ 内存分配相关内容(面试复习整理)

本文详细介绍了C/C++内存的五个分区,包括静态存储区、栈和堆等。讨论了在32位和64位系统下各种数据类型的字节数。深入探讨了malloc/free与new/delete的区别,特别指出delete与delete[]在释放内存上的差异。同时,列举了常见的内存错误,如内存泄漏,并分析了其原因,包括未匹配的内存分配与释放、错误的数组处理、拷贝构造函数和赋值运算符的缺失等。
摘要由CSDN通过智能技术生成

1、内存分区

五大内存分区,及存储数据如下:

内存区域 存放数据类型
BSS 程序中还未初始化的全局变量,静态变量
数据段 初始化后的全局变量,静态变量
代码段 程序代码和常量,一般只允许读
动态分配的内存段(maloc/new,free/delete)
临时创建的局部变量,函数形参,数组函数调用时,参数被压入栈

内存分配方式
1、静态存储区
2、栈
3、动态存储区:堆

2、各数据类型在32位/64位下的字节长度

数据类型 32位下 64位下
char 1 1
float 4 4
int 4 4
short 2 2
double 8 8
long 4 8
void*(指针) 4 8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值