#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'中的值。
答案 0 :(得分:2)
您希望能够取消引用以e1
最终到达p
开头的链。
这是你如何做到的:
printf("%d\n",*((*(e1->testpp))->p));