|
本帖最后由 aiyanok 于 2021-6-8 22:46 编辑
假设有个结构 - struct jiegou
- {
- int a;
- int b;
- int c;
- };
在C++里 如果定义这个结构 那么这个结构的指针假设是 00400000,A的指针就是00400000 B是00400004 C是00400008
但是在火山结构类里 定义同样的结构,这个结构指针是00400000 A的指针却成了0040000C B是00400010 C是00400014
如果在C++里 要操作这个结构的内存,只需要将结构指针指向结构内存即可
比如有内存
00400000 00400004 00400008
1 2 3
p=0x00400000
那么
*p++=3
*p++=2
*p=1
就可以变成
00400000 00400004 00400008
3 2 1
但是在火山里,取变量地址(结构变量)得到的却是火山结构的指针,如果直接把地址覆盖火山对象的指针,比如
写指针处值(取变量地址(结构),0x00400000)
结构.a=3
结构.b=2
结构.C=1
这样操作是不行的
请问如何像C++一样 ,实现结构直接对内存操作?
需要解决2个问题,
第一.如何得到火山结构对象指针内存地址,而不是对象指针指向的数据内存地址,以便更改指针指向的数据地址
第二个,如何解决火山结构成员会相对结构指针偏移 +0C的问题..因为我发现火山结构对象的第一个内存空间的内容,好像是this指针的值
如果直接通过更改对象指针指向的内存地址,缺少this可能会报错
有没有大能能够解释下用法?或者说火山的结构不用类结构的实现方式是怎么样的?只能靠嵌入式方法或者C++代码来实现吗?
IDE没有原生的自定义数据结构方式,只有类自定义数据结构的方式吗?
|
|