社区
非技术区
帖子详情
Delphi如何获取结构体在内存所占的字节?
xtfnpgy
2013-12-07 05:45:53
以下的记录(结构)变量在内存占多少字节?
type
a = packed record
v1: Byte; 1
v2: Word; 2
v3: string[16] 17;
v4: Double; 8
v5: string; 4
v6: TForm; 4
end;
后面的数字是我用SizeOf获取出来的大小,但是我查了书籍都不对,Double占8个字节,string也是8个字节,求解?string[16]是什么类型?请给出答案和解释
...全文
848
8
打赏
收藏
Delphi如何获取结构体在内存所占的字节?
以下的记录(结构)变量在内存占多少字节? type a = packed record v1: Byte; 1 v2: Word; 2 v3: string[16] 17; v4: Double; 8 v5: string; 4 v6: TForm; 4 end; 后面的数字是我用SizeOf获取出来的大小,但是我查了书籍都不对,Double占8个字节,string也是8个字节,求解?string[16]是什么类型?请给出答案和解释
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xtfnpgy
2013-12-10
打赏
举报
回复
谢谢你的回答!
xtfnpgy
2013-12-08
打赏
举报
回复
那就是说a=packed record //直接用sizeof就可以了 要是a=record //不进行压缩,那结果是什么呢
sololie
2013-12-08
打赏
举报
回复
实际编程中sizeof就可以了,如果说你是在跟书中的比较发现大小不一样,那就得注意是否packed了,具体可以搜 内存 字节对齐
sololie
2013-12-07
打赏
举报
回复
得看packed没了 a = packed record //加 packed顾名思义就是将内存进行了压缩,时间换空间 a = record //默认方式,不进行压缩,占用内存比上面的多,空间换时间
xtfnpgy
2013-12-07
打赏
举报
回复
所以获取的方法直接用SizeOf得到就可以了是吗?
sololie
2013-12-07
打赏
举报
回复
v3: string[16]
限定这个string只能装16个char,赋值时超过16个之后的被丢弃
string[1]是保留用来记录string长度的,所以v3= 16+1=17
32位系统下,指针自然是4字节,string、ftorm这些都是引用(指针)类型,都是4字节
byte、word、double这些是值类型,byte1字节,word2字节,
double和real都是8字节,single是4字节
xtfnpgy
2013-12-07
打赏
举报
回复
那上面说的并不明白啊,在内存中所占字节是那个表的字节?
sololie
2013-12-07
打赏
举报
回复
数据类型表
http://www.cnblogs.com/del/archive/2007/12/04/982167.html
Delphi
的
结构体
支持
Delphi
新的
结构体
初始化语法。
java中double类型
占
几个
字节
_Java中的单双精度数据类型分别
占
几个
字节
?
Java中的单双精度数据类型分别
占
几个
字节
?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Java中的单双精度数据类型分别
占
几个
字节
?这个挺好记的:byte: 1Bytechar,short: 2Byteint,float: 4Bytelong,double: 8Byte另外关于单位的换算:1Byte = 8 bit1...
delphi
申请和释放
内存
内存
分配常见函数 GetMem和FreeMem、GetMemory和FreeMemory、New和Dispose、StrAlloc和StrDispose、AllocMem、SysGetMem和SysFreeMem。 2 GetMem和FreeMem、GetMemory和FreeMemory 由于
DELPHI
的
内存
管理都知道分配
内存
的大小,因此在释放
内存
的时候,只要给指针地址不用给
Delphi
内存
对齐
本文环境
Delphi
XE 10.2 我们知道在
Delphi
中,全局变量存储在应用程序数据段中,其生命周期直至整个应用进程终止;局部变量存储在应用程序栈中,其生命周期直至当前声明的函数方法返回;以GetMem,New等方法动态申请的
内存
由堆分配,其生命周期直至以FreeMem或Dispose方法销毁;长字符串(Long string), 宽字符串(wide string), 动态数组(dynam...
delphi
结构体
转c++
结构体
_C++ dll中返回
结构体
如何传递给
Delphi
的
结构体
?
展开全部C++中的
结构体
对应的应该是
Delphi
中的记录类型...下面是转的一些资料,看你有用不Object Pascal的指针一、类型指62616964757a686964616fe4b893e5b19e31333264656134针的定义。对于指向特定类型的指针,在C中是这样定义的:int *ptr;char *ptr;与之等价的Object Pascal是如何定义的呢?varptr : ^I...
非技术区
830
社区成员
53,569
社区内容
发帖
与我相关
我的任务
非技术区
Delphi 非技术区
复制链接
扫一扫
分享
社区描述
Delphi 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章