社区
C++ 语言
帖子详情
关于指针数组在内存中占用的字节数问题!
YZZ2086
2008-09-24 12:56:26
定义这样一个指针数组:
char &pstr[]={"Robert",
"hello!",
"world!"
};
用sizeof pstr 求得为12
用size pstr[0] 求得为4
每个数组元素占用的字节数是 一样的 !
问题是为什么会一样,用sizeof求的什么量的占用的字节数,
无论给该数组赋予多长的字符串 其结果都一样 为什么??
...全文
590
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.Net
2008-09-24
打赏
举报
回复
[Quote=引用 1 楼 taodm 的回复:]
先把代码编译通过了再来发问。
[/Quote]
呵呵,大M发彪了,
问题是为什么会一样,用sizeof求的什么量的占用的字节数,
sizeof是类型所占的字节数,你用的是char类型,它的长度不会变
无论给该数组赋予多长的字符串 其结果都一样 为什么??
同上
c++数组指针和
指针数组
详解
本文深入解析了
指针数组
与数组指针的概念,包括它们的定义、
内存
分配方式、以及在参数传递
中
的应用。通过具体示例,阐述了两者的区别与联系,帮助读者理解并正确使用这两种数据结构。
内存
占用
估算方法
本文介绍了
内存
占用
估算方法,包括基础数据类型、对象、数组、String对象的
内存
占用
情况,还提及可借助如jol等
内存
分析工具更准确估计。同时给出防止
内存
膨胀的策略,如用基础类型代替、使用对象池、限制容器最大容量等,以降低
内存
消耗,提升性能。
数组指针和
指针数组
本文详细解析数组与指针的概念,包括数组在
内存
中
的表示、数组名与数组指针的区别、
指针数组
的使用以及深入思考部分。通过实例代码和详细分析,帮助读者掌握数组与指针对高级编程的运用。
计算结构体
占用
内存
,sizeof,指针。
本文探讨了C语言
中
结构体
占用
内存
的情况,重点关注字节对齐的原则和影响。通过实例解释了编译器如何在结构体
中
添加填充字节以满足对齐规则,并介绍了包含数组、指针和嵌套结构体的结构体的
内存
计算方法。总结了结构体的
内存
占用
计算原则:成员偏移量为其大小的整数倍,总大小为最宽基本类型成员的整数倍。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章