通过指针访问结构变量

时间:2014-04-29 18:39:13

标签: c pointers structure

#include<stdio.h>
#include<string.h>
#include<malloc.h>
typedef struct male_node
{
    int mv1,mv2,mv3;
}male;

typedef struct movie_name
{
    char mvnm[20];
    struct male *ml;
}movie;

main()
{
    movie mov1;
    mov1.ml=(male*)malloc(sizeof(male));
    mov1.(*ml).mv1=1;//ERROR
    mov1.ml->mv1=1; //ERROR
}

如何通过mov1和ml访问mv1变量 我试图通过ml访问mv1,这是一个指向结构的指针,该结构又是一个结构变量,但它显示错误。

1 个答案:

答案 0 :(得分:4)

这看起来不对:

struct male *ml;

您已使用typedefmale定义为struct male_node,因此说struct male没有意义。相反,试试这个:

typedef struct movie_name
{
    char mvnm[20];
    male *ml;
} movie;

这应该可以解决您的问题,您应该可以这样做:

mov1.ml->mv1=1;