【发布时间】:2014-07-21 01:15:54
【问题描述】:
当内存分配稍后进行时,是否可以自动更新结构内的指针值?请看代码。
struct S {void *ptr;};
void *p;
struct S ST= {p};
int main() {
p = new int;
void* b = ST.ptr; // b should be the same as p
return 0;
}
【问题讨论】:
-
如果你在 C++ 中,你可以使用对指针的引用。如果你在 C 语言中,你可以使用指针到指针。
-
你可以改变动作的顺序,或者代码的哪一部分负责分配。或者,您可以添加另一层间接。但与往常一样,查看真正的问题 是个好主意,而不是针对该问题的想象的技术解决方案。这意味着,添加另一个间接层,这是有代价的,可能不是一个好主意。不过,这是一个技术解决方案。