结构体成员的指针

7

我正在尝试编写一个C程序。我需要变量“recq”的地址。有人可以帮我解决这个问题吗?

typedef struct {  
    int recq;  
} dd;  


struct test {  
    dd a;  
};

main(){  
    struct test *mm;  
    mm=(struct test *) malloc (sizeof (struct test));    
    ss=&(mm->a.recq);    
    printf("%p",ss);    

}      

除了缺少“ss”声明之外,您提供的代码将获取结构体成员的地址。您能否提供更多有关您遇到的问题的详细信息? - Andrew Edgecombe
非常抱歉,我犯了一个非常愚蠢的错误。在做最后的更正时,我意识到了它。现在它可以工作了。上面贴出的代码可以运行!:) 再次道歉。 - Pkp
3个回答

5

你的内容看起来不错,除了需要声明ss变量:

int *ss;

0
首先,你需要将ss声明为"int *",或者在代码的其余部分使用强制转换。我认为你的代码其他部分是正确的。

0

你需要的程序是:

#include<stdio.h>

typedef struct {
    int recq;  
} dd;  

struct test {  
    dd a;  
};

void main(void){
    struct test mm;
    printf("%p", &mm.a.recq);
} 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接