【问题标题】:pointer to member of struct [closed]指向结构成员的指针[关闭]
【发布时间】:2011-05-05 06:14:17
【问题描述】:

我正在尝试编写一个 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”声明外,您提供的代码将获取结构成员的地址。你能提供更多关于什么不适合你的细节吗?
  • 非常抱歉,犯了一个非常愚蠢的错误。在进行最后一次更正时,我意识到了这一点。它现在工作。上面粘贴的代码有问题! :) 再次抱歉。

标签: c pointers struct


【解决方案1】:

除了需要声明 ss 变量之外,您所拥有的看起来不错:

int *ss;

【讨论】:

    【解决方案2】:

    你需要的程序是,

    #include<stdio.h>
    
    typedef struct {
        int recq;  
    } dd;  
    
    struct test {  
        dd a;  
    };
    
    void main(void){
        struct test mm;
        printf("%p", &mm.a.recq);
    } 
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-01
        • 1970-01-01
        • 2015-01-24
        • 1970-01-01
        相关资源
        最近更新 更多