社区
语言基础/算法/系统设计
帖子详情
将一个结构体变量,赋值给另一个相同类型结构体变量,会出现莫名错误,提示地址访问错误,
annhoo
2017-10-04 10:19:59
如题
本人用Delphi7使用结构体(record)类型,赋值的时候有时候成功有时候失败?很是不解,不知大家是否遇到过这样的情况。难道说是Delphi的bug还是需要注意那些问题?
...全文
1572
6
打赏
收藏
将一个结构体变量,赋值给另一个相同类型结构体变量,会出现莫名错误,提示地址访问错误,
如题 本人用Delphi7使用结构体(record)类型,赋值的时候有时候成功有时候失败?很是不解,不知大家是否遇到过这样的情况。难道说是Delphi的bug还是需要注意那些问题?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
doloopcn
2017-10-05
打赏
举报
回复
简单的常量变量是不会有什么问题 但你的结构体中有需要初始化的指针、OBJECT等,就要先初始化 结构体中的资源回收时,要考虑共享冲突
annhoo
2017-10-05
打赏
举报
回复
问题找到了,呵呵 原因: 在于结构体定义的时候的
string 改成 string[xx]
就可以了。 还是不全是常数。疏忽了。麻烦大神们忙里偷闲帮兄弟一把。谢谢!
annhoo
2017-10-05
打赏
举报
回复
var vRec1 : TCRec; VRec1 := AClass.MyCRec; //一旦执行此语句就报错。
MyCRec的定义也是用相同的TCRec定义的,其他类中的成员
。 我用sizeof赋值的左右两边数值也是一样的。 之前遇到过一次从文件里面读取数据结构赋值变量也出现过,后来统一了size后就ok了。那个结构更简单就是一些string。 现在是两个变量之间的的直接赋值,反而不行了。呵呵,诡异呀!
lyhoo163
2017-10-05
打赏
举报
回复
你的结构,基本还是简单的结构。如果AClass.MyCRec的结构是TCRec,不应该有问题的。 注意二个变量之间正常赋值,需要同一类型来定义他们。
annhoo
2017-10-05
打赏
举报
回复
TARec = record Id: Byte; Name: string[2]; end; TBRec = record Name: string[10]; Codes: array[0..100] of TARec; Id1: Integer; Id2: Integer; Code1: string; Code2: string; Count1: Integer; Count2: Integer; Count3: Integer; end; TCRec = record Name: string[20]; Count: Integer; Id: Integer; Parts: array[1..100] of TBRec; end; 以上是我的结构 出错例子: var vRec1 : TCRec; VRec1 := AClass.MyCRec; //一旦执行此语句就报错。 就是您说的常量的定义,没有包括动态生成的内容。
annhoo
2017-10-04
打赏
举报
回复
http://bbs.csdn.net/topics/10033219?list=lz 类似这个问题,不过我的有时候可以,有时候出错。 简单的结构没事,如果结构复杂就问题来了。 有人如此用么?谢谢。
06-
结构
体
和类
结构
体
在 Swift 标准库中,绝大多数的公开
类型
都是
结构
体
,而枚举和类只占很小一部分 比如 Bool、Int、Double、 String、Array、Dictionary 等常见
类型
都是
结构
体
struct Date { var year: Int var month: Int var day: Int } var date = Date(year: 2020, month: 6, day: 5) 所有的
结构
体
都有一个编译器自动生成的初始化器(initializer..
变量
类型
不匹配引发的问题(
变量
值被
莫名
改变)
问题: 今天碰到一个问题,
变量
的值被
莫名
改变,最开始也觉得很奇怪,后面发现其实是
变量
类型
不匹配导致的。先上代码 #include <stdio.h> #include <stdlib.h> #define TYPE_PORT 0 #define TYPE_NUM 1 #define TYPE_MAX_LINE 2 typedef struct _cfg ...
C语言全局
变量
被
莫名
修改,在中断程序里修改全局
变量
的童鞋注意啦-C中的volatile作用...
一个定义为volatile的
变量
是说这
变量
可能
会
被意想不到地改变,这样,编译器就不
会
去假设这个
变量
的值了。精确地说就是,优化器在用到这个
变量
时必须每次都小心地重新读取这个
变量
的值,而不是使用保存在寄存器里的备份。下面是volatile
变量
的几个例子:1). 并行设备的硬件寄存器(如:状态寄存器)2). 一个中断服务子程序中
会
访问
到的非自动
变量
(Non-automatic variables)3)....
STM32代码灵异事件——自动清零的
变量
声明:这个专栏专门用来记录我遇到的一些比较奇怪的事情,欢迎大家一起讨论! 今天在调试代码的时候遇到了一件特别诡异的事情,有一个
会
自动清零的
变量
!废话不多说直接看图! 我在user_tcoecho.c文件中定义了一个全局的
结构
体
变量
tIAP_Updata,并在user_tcoecho.h文件中对外声明了这个
变量
。好的,现在看看是发生了什么问题。 我在在调试过程中将tIAP_Updata.BootOnlineFlag
赋值
为1,然后我点击了继续运行!接着我就惊奇的发现tIAP_Updata.BootOnli
C数据
类型
讲解
结构
体
变量
的
地址
和他第一个成员的
地址
是一样的。1、以多少字节为单位开辟内存给
结构
体
变量
分配内存的时候,
会
去给
结构
体
变量
中找出基本
类型
的成员,哪个基本
类型
的成员占字节数多(这个多,是指一个数据所占的字节数),就以它为的大小为单元去开辟内存。比如全是char,则以1字节开辟内存(
结构
体
中只有3个char,
结构
体
就占用3字节的内存空间)。int(或者float)最大时就以4字节开辟(比如
结构
体
有一个int
变量
一个char
变量
,他们占用8个字节)
语言基础/算法/系统设计
16,748
社区成员
33,247
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章