我有一个结构体,其结构定义如下(名称不同)
struct str1
{
int field1;
struct str2;
}我在一个函数中有一个*str1。我想得到一个指向str2的指针。
所以我尝试了&(str1->str2),希望这会返回一个指向str2的指针。这是不正确的吗?它似乎不起作用。如果给我一个指向str1的指针,我如何获取指向str2的指针
发布于 2010-04-23 02:01:34
如果p是一个指向struct str1类型的对象的指针,那么&p->str2将给你指向它的str2成员的指针(假设它有str2成员)。
“似乎不起作用”并不是对问题的有意义的描述。不过,您的示例看起来很可疑。struct str1内部的struct str2没有任何意义。它应该是什么?结构类型的正向声明?你的指针真的叫str1吗?和struct标签一样吗?
发布于 2010-04-23 02:02:23
您的解决方案应该是正确的。str1->str2把你带到结构体,然后取它的地址,你就会得到一个指向那个值的指针。
你的调试器告诉你什么?也许你的str1指针是垃圾?
发布于 2010-04-23 01:51:35
如果您有指向str1的指针,则可能需要执行以下操作:
&(*(str1).str2)
对此不是很确定,但请尝试一下,我手头没有C编译器。
https://stackoverflow.com/questions/2693162
复制相似问题