社区
C++ 语言
帖子详情
关于指针数组在内存中占用的字节数问题!
YZZ2086
2008-09-24 12:56:26
定义这样一个指针数组:
char &pstr[]={"Robert",
"hello!",
"world!"
};
用sizeof pstr 求得为12
用size pstr[0] 求得为4
每个数组元素占用的字节数是 一样的 !
问题是为什么会一样,用sizeof求的什么量的占用的字节数,
无论给该数组赋予多长的字符串 其结果都一样 为什么??
...全文
536
11
打赏
收藏
关于指针数组在内存中占用的字节数问题!
定义这样一个指针数组: char &pstr[]={"Robert", "hello!", "world!" }; 用sizeof pstr 求得为12 用size pstr[0] 求得为4 每个数组元素占用的字节数是 一样的 ! 问题是为什么会一样,用sizeof求的什么量的占用的字节数, 无论给该数组赋予多长的字符串 其结果都一样 为什么??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
taodm
2008-09-24
打赏
举报
回复
先把代码编译通过了再来发问。
beyondlwm
2008-09-24
打赏
举报
回复
I got the answer from your topic.
allenpettle
2008-09-24
打赏
举报
回复
LS正解。
说的很清楚哈。
Pause_break
2008-09-24
打赏
举报
回复
char *pstr[]={"Robert",
"hello!",
"world!"
};
字符串分配在常量区,sizeof(pstr)得到的是pstr数组的长度,4*3=12.而sizeof(pstr[0]))求的是一个指向常量区的指针所指向的内存,这就等同于 char *p=“Robert”;求sizeof(p)的值,MSDN上说“The sizeof operator cannot return the size of dynamically allocated arrays or external arrays.”只要是p指向常量区,sizeof(p)得到的值都是4,这可能就是MSDN上说的external arrays吧,另外动态分配的内存,如char *p=new char[20],sizeof(p)得到的值也是4,不知道是不是C++标准上这么规定的?
就呆在云上
2008-09-24
打赏
举报
回复
你的代码有问题,肯定通过不了
不管怎么一会事,有一点记住了,指针在c语言里面是4个字节,因为现在的32位的地址设计就是4个字节来存储指针对象的首地址
3个就是12,单个就是4
很容易的
还有如果是为了找工作来发这么一个问题就免了,代码都写不了,你这个问题晓得了也是白搭,希望你学会打鱼而不是等着别人给你一条鱼
加油
YZZ2086
2008-09-24
打赏
举报
回复
[Quote=引用 6 楼 solvepro 的回复:]
我只想知道lz的初始化是否正确,因为这样的初始化将使指针只想字符串常量,一旦发生修改将十分危险。
我记得这样是指向字符串常量,所以不涉及空间分配问题。
[/Quote]
是不是我定义了
char *pstr[]=={,,};
之后,指针数组和 其中的每个元素占用的内存字节数就 已经固定了 的 ???
我 的 初始没的问题!
也就是指针变量和所指向元素的 内存占用问题
solvepro
2008-09-24
打赏
举报
回复
我只想知道lz的初始化是否正确,因为这样的初始化将使指针只想字符串常量,一旦发生修改将十分危险。
我记得这样是指向字符串常量,所以不涉及空间分配问题。
大写的池
2008-09-24
打赏
举报
回复
楼上正解
YZZ2086
2008-09-24
打赏
举报
回复
定义这样一个指针数组:
char *pstr[]={"Robert",
"hello!",
"world!"
};
用sizeof pstr 求得为12
用sizeof pstr[0] 求得为4
每个数组元素占用的字节数是 一样的 !
问题是为什么会一样,用sizeof求的什么量的占用的字节数,
无论给该数组赋予多长的字符串 其结果都一样 为什么??
刚才输入的时候没看!不好意思
cattycat
2008-09-24
打赏
举报
回复
char *pstr[]吧,指针数组,三个指针,当然是3*4=12了,每个指针4字节。
OenAuth.Core
2008-09-24
打赏
举报
回复
[Quote=引用 1 楼 taodm 的回复:]
先把代码编译通过了再来发问。
[/Quote]
呵呵,大M发彪了,
问题是为什么会一样,用sizeof求的什么量的占用的字节数,
sizeof是类型所占的字节数,你用的是char类型,它的长度不会变
无论给该数组赋予多长的字符串 其结果都一样 为什么??
同上
200个经典C程序【源码】
006 显示变量所占
字节数
007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机)界面 012 用一维数组统计学生成绩 013 用二维数组实现矩阵转置 014 求解二维数组的最大/...
指针数组
和数组指针的
内存
布局
指针数组
:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身的大小决定,每一个元素都是一个指针,在32 位系统下任何类型的指针永远是占4 个字节。它是“储存指针的数组”的简称。 数组指针:首先...
关于
指针数组
与数组指针详解(知识点全面)
如果一个数组
中
的所有元素保存的都是指针,那么我们就称它为
指针数组
。其一般形式为: 数据类型 *数组名[常量表达式][常量表达式]...... ; 它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身的...
深度理解数组在
内存
中
的存储以及
指针数组
和数组指针的概念
数组就是将相同数据类型的数据存储在一块连续的
内存
空间
中
的数据类型,指针和数组都是自定义数据类型。但这只是最基本的定义,如果想要理解的更深刻,我们必须深挖其
中
的底层原理。所以今天我们就来深挖一下,他们...
指针数组
和数组指针
指针:指针相当于一个变量,不过它存放的是其它变量在
内存
中
的地址。 数组:数组是用于储存多个相同类型数据的集合,且数组
中
的元素在
内存
中
是连续存放的
指针数组
和数组指针的区别?
指针数组
(array of pointers):...
C++ 语言
64,651
社区成员
250,488
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章