C++ 如何为结构成员中的双指针赋值?

C++ 如何为结构成员中的双指针赋值?,c++,pointers,struct,double,C++,Pointers,Struct,Double,出于某种原因,我想给struct成员中的双指针赋值。我有三个成员的结构,第一个是int,第二个是指向那个int的指针,第三个是双指针,指向第二个成员(指向指针)。第三个成员也不知道如何定义。资料来源如下: #include <iostream.h> typedef struct { int a; int *b; int **c; } st; st st1, *st2 = &st1; void main(){ // first define a m

出于某种原因,我想给struct成员中的双指针赋值。我有三个成员的结构,第一个是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;
}
#包括
类型定义结构{
INTA;
int*b;
int**c;
}st;
stst1,*st2=&st1;
void main(){
//首先定义一个成员
st1.a=200;
//第二,将b指针成员分配给a
st2->b=&st1.a;
//第三,将c指针成员分配给b(但这不起作用)
*(st2)->c=st2->b;
}

OS:Win 7, 64,C++(C++ +Builder 2010)

< P>试试:

st2->c = &st2->b;
将指针指定给指针与将指针指定给int完全相同。只需将指针的地址而不是int的地址指定给指针即可。

尝试以下操作:

st2->c = &st2->b;
typedef struct {
    int a;
    int *b;
    int **c;
} st;

st mySt;

void main() {
    mySt.a = 200;
    mySt.b = &mySt.a;
    mySt.c = &mySt.b;
}
将指针指定给指针与将指针指定给int完全相同。只需给它指针的地址,而不是int的地址

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
被正确初始化为指向指针的指针


使用最后一个赋值,得到字段“代码>代码> b/COD>,这是一个指针,所以它是指针的地址,然后字段<代码> c>代码>被正确初始化为指针的指针。< /p>这不是C++,而<代码>无效主() >在C或C++中是不合法的……我不会调用<代码> int *>代码> a <代码>双指针< /代码>,这听起来好像是一个指向double的指针,即<代码> double *<代码>。调用它“代码>指针指向int < /COD>。这都不是C++,而>(<)>代码>在C或C++中是不合法的……我不会调用<代码> int *>代码> AcEng>双指针——这听起来好像是一个双指针,即“代码>双*< /代码>。将其称为指向int的指针。