社区
C++ 语言
帖子详情
请教:C++内存分配问题
Evelyn_ever
2005-10-10 11:02:25
6、假定一个一维数组的定义为“char * a[8] ;”,所占存储空间的字节数为 。
9、假定一个结构类型定义为
struct D {
int a ;
union { int b ; double c ; } ;
D * d[2] ; }
,则该类型的大小为 字节。
...全文
81
10
打赏
收藏
请教:C++内存分配问题
6、假定一个一维数组的定义为“char * a[8] ;”,所占存储空间的字节数为 。 9、假定一个结构类型定义为 struct D { int a ; union { int b ; double c ; } ; D * d[2] ; } ,则该类型的大小为 字节。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
v41dugu
2005-10-10
打赏
举报
回复
边界问题?????/不懂。。。是怎么会事哦?
Pigwen
2005-10-10
打赏
举报
回复
一个指针4个字节,char *a[8]有8个指针,所以是32。
对于结构,一个int是4个字节,联合取大值,就是double的字节,为8个字节,两个指针又是8个字节,所以加起来是20个字节。但是这里有个问题,因为地址存储边界的问题,所以世界上存储的并不是20个字节,在我机器上是24个。
NetsEagle
2005-10-10
打赏
举报
回复
9、sizeof(struct D)我怎么运行都是24个字节
Evelyn_ever
2005-10-10
打赏
举报
回复
谢谢啦,结贴!
wuming2003
2005-10-10
打赏
举报
回复
6.a是一个数组,有八个元素,元素为指向char的指针,在32位机中,指针一般为32位,即4个字节
9.int 4个字节, union 取double 8个字节, 再加两个指针8个字节
v41dugu
2005-10-10
打赏
举报
回复
char * a[8] 这是一个指针数组 也就是这个a数组有8个元素 都是只能装指向char类型的指针,一个指针是4个字节 所以4*8=32哦
struct D {
int a ;
union { int b ; double c ; } ;
D * d[2] ; }
这个结构体包含了int a,(4字节) union{int b,double c}(8字节,因为联合体是分配其中最大的字节数) D *d[2](和第1题一样 指针数组 4*2=8字节) 所以一共是 4+8+8=20字节
Evelyn_ever
2005-10-10
打赏
举报
回复
第一个答案是32
第二个答案是20
请问下这是怎么得来的啊?
ice_river_feng
2005-10-10
打赏
举报
回复
sizeof(struct D)我怎么运行都是24个字节
当然是24个字节了,因为在struct中,都是以8个字节为单位的,
原本int 4个字节, union 取double 8个字节, 再加两个指针8个字节
但是,4个字节不做,本来去后面的来补充,但4+8>8,所以不能补充,只能是8+8+8=24字节
ice_river_feng
2005-10-10
打赏
举报
回复
ddd
Pigwen
2005-10-10
打赏
举报
回复
回复人: v41dugu(一步一生) ( ) 信誉:105 2005-10-10 12:37:00 得分: 0
边界问题?????/不懂。。。是怎么会事哦?
大概就是在一个struct中的数据不是连续存放的,中间是又缝隙的,所以实际存储比算的要大
asp.net知识库
C++
泛型编程系列讲座之实施 泛型技巧系列:简单类型选择器 C# 泛型简介 我眼中的C#2.0新功能特性 泛型技巧系列:避免基类及接口约束 New Article 不该用Generics实现Abstract Factory的理由 C#2.0-泛型 C#2.0-...
转载:陈皓:
C++
虚函数表解析
转载:陈皓:
C++
虚函数表解析
C++
第3课:
C++
内存泄露检测原理及案例实战
本课程具体的内容主要包括
C++
内存泄露案例、VS2015内存泄露检测、野指针、VirtualAlloc/HeapAlloc/malloc/new的区别、
C++
堆和栈的内存管理、栈简介、堆简介、堆与栈区别、栈的
内存分配
、Windows的虚拟内存技术、...
C++
中的Dll内存
问题
这两天在做一个数据结构...
请教
了多人,觉得可能是vector的使用
问题
,因为我将第一层封装为dll,而在第二层使用源文件,导致在第二层申请的内存在第一层释放时出现
问题
。 2:为了避免vector的内存释放
问题
,自己写了
linux c
内存分配
内存,Linuxc - 操作系统
内存分配
静态变量是存储在数据段的,在函数中可以共用。全局变量也是存储在...栈(先进后出)内存:为编译器自动分配和释放,如函数参数、局部变量、临时变量等等。堆内存:为成员分配和释放,由程序员自己申请、自己释放。...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章