使用指向具有结构的指针的指针的函数

Posted

技术标签:

【中文标题】使用指向具有结构的指针的指针的函数【英文标题】:function using a pointer to a pointer with a structure 【发布时间】:2021-01-29 03:41:52 【问题描述】:

我有一个使用指向结构指针的函数:

int function(struct_A ** mystructA);

当我将它与我声明的结构一起使用时它起作用了:

struct_A *mystructA;
function(&mystructA);

但是,不可能通过另一个结构使用我的结构:

struct struct_B
    struct_A *mystructA;


struct_B mystructB;
function( (&mystructB)->mystructA );    //this line cause me a segfault

我在这里挣扎,知道它可能来自哪里吗?

【问题讨论】:

&(mystructB->mystructA) 如果你想以这种奇怪的方式使用它function( &(&mystructB)->mystructA ); 谢谢它成功了! 【参考方案1】:
struct struct_B
    struct_A *mystructA;


struct struct_B mystructB;
struct struct_B *mystructBptr;

/* .... */

function( &mystructB.mystructA );
function( &(&mystructB) -> mystructA );
function( &mystructBptr -> mystructA );

【讨论】:

【参考方案2】:

你的意思好像是下面这个

struct struct_B
    struct_A *mystructA;


struct struct_B mystructB;
function( &mystructB.mystructA );

【讨论】:

以上是关于使用指向具有结构的指针的指针的函数的主要内容,如果未能解决你的问题,请参考以下文章

指向具有多个参数作为函数参数的函数的指针

从指向结构数组的指针中提取元素

指向虚拟成员函数的指针是不是具有可比性?

使用指向结构数组的指针不会返回完整的数组

指向具有私有构造函数的类的类成员的指针

使用变量与指向变量的指针作为函数的参数