如何跟踪这个堆栈和指针

时间:2013-07-24 13:21:03

标签: c

#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'中的值。

1 个答案:

答案 0 :(得分:2)

您希望能够取消引用以e1最终到达p开头的链。

这是你如何做到的:

printf("%d\n",*((*(e1->testpp))->p));