C/C++二维数组及一维指针数组内存分配

本文探讨了C/C++中二维数组和一维指针数组的内存分配。以char类型二维数组为例,其内存布局呈矩阵形式,占用15个字节。而对于一维指针数组,内存分配是连续的,每行增加的字节数与元素大小相关。然而,当遇到不同长度的字符串时,内存空间虽连续但不规整,每个字符串占据的字节数根据结束符''的位置而变化。
摘要由CSDN通过智能技术生成

C/C++二维数组及一维指针数组内存分配

我们以char 类型的二维数组为例吧;char array[3][5];这个数组的内存空间是怎么样的呢?
可以把它理解成一个矩阵的形式,他所占的字节数==3 * 5 * sizeof(char),就是15个字节,有三行,每行占五个字节;

下面我们来看下面一种形式:char *array_two[3],建立一个含有三个指向char类型的指针的数组;
那么他的内存分配就是非常非常连续的,地址是一个接着一个的,我们直接看代码吧:
在这里插入图片描述


the adress of array_one[0]==000000000061fdd0
the adress of array_one[1]==000000000061fdda
the adress of array_one[
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值