汇总:
是否可以更改类成员属性的内存地址?
是什么引导我做这个问题:
我不确定我想要做什么会导致我的预期行为,即使它按预期工作,如果它是我应该做的。
所以,我有一个我想从磁盘读取的成员属性,例如来自prop
的{{1}}。我从磁盘MyClass
读取属性的例程我无权访问该实现,但它使用指向该类型的指针来填充文件上的值。
在文档中它说如果属性不存在,指针可能为null,虽然我不确定它是否会将其设置为null,或者是因为它期望我输入指向该函数的空指针。
因此,我使用getVarOnFile
指针,而不是使用destVar
指针,然后将localVar
设置为destVar
。
但是我不确定我是否应该这样做,这似乎会分段内存,其中大部分成员都在内存中,但不是我设置到文件保留的内存位置的内存。 / p>
localVar
我不确定原始类属性成员保留的原始内存位置会发生什么变化,该位置被替换为新位置。它将被释放,或者这将是内存泄漏?
答案 0 :(得分:3)
更改班级成员地址
如果我理解你的问题,那是不可能的。
说你有:
struct Foo
{
int a;
};
Foo f;
创建f
后,f
和f.a
的地址不可更改。您只能修改其值。