0
#include<stdio.h>
#include<stdlib.h>
struct test
{
    int *p;
};
typedef struct test * TESTP;
struct ex
{
TESTP *testpp;
};
typedef struct ex * EXP;
void main(void)
{
    int x=10;
    struct test t2; 
    TESTP t1=(struct test *)malloc(sizeof(struct test));
    EXP e1=(EXP)malloc(sizeof(struct ex));
    (e1->testpp)=&t1;
    t1->p=&x;
    printf("%d\n",**(e1->testpp));
}

e1 を使用して、ポインター p (つまり、10) に格納されている値にさかのぼりたいと思います。それを追跡することは可能ですか?このコードは誤って編集されました。これが機能するかどうかはわかりません。それが機能する場合は、「e1」を使用して「p」の値に戻る方法を教えてください。

4

1 に答える 1

2

最終的にe1到達することから始まるチェーンを逆参照できるようにしたいと考えています。p

これを行う方法は次のとおりです。

printf("%d\n",*((*(e1->testpp))->p));
于 2013-07-24T13:30:06.227 に答える