由于某种原因,我想为struct成员中的double指针赋值。 我有3个成员的结构,第一个是int,第二个是指向该int的指针,第三个是双指针,它指向第二个成员(指向指针)。 第三位成员也不知道如何定义。 这是来源:

#include <iostream.h>

typedef struct {
    int a;
    int *b;
    int **c;
} st;

st st1, *st2 = &st1;

void main(){
// first define a member  
    st1.a = 200;
// second assign b pointer member to a
    st2->b = &st1.a;
// third assign c pointer member to b (but that don't work)
    *(st2)->c = st2->b;
}

操作系统:Win 7,64,C ++(C ++ Builder 2010)

===============>>#1 票数:2

尝试这个:

st2->c = &st2->b;

分配指针到指针与分配指针到int完全相同。 您只需为其提供指针的地址,而不是int的地址。

===============>>#2 票数:1 已采纳

typedef struct {
    int a;
    int *b;
    int **c;
} st;

st mySt;

void main() {
    mySt.a = 200;
    mySt.b = &mySt.a;
    mySt.c = &mySt.b;
}

在最后一次赋值后,您将获得字段b的地址(即指针),因此它是指针的地址,然后正确地将字段c初始化为指向指针的指针。

  ask by Ivan Pericic translate from so

未解决问题?本站智能推荐: