通过指针访问结构变量 #包括 #包括 #包括 typedef结构阳节点 { int mv1、mv2、mv3; }男性; typedef结构电影名称 { char-mvnm[20]; 结构雄性*ml; }电影; main() { 电影mov1; mov1.ml=(男性*)malloc(sizeof(男性)); mov1.(*ml).mv1=1;//错误 mov1.ml->mv1=1;//错误 }
如何通过mov1和ml访问mv1变量 我试图通过ml访问mv1,ml是指向结构的指针,该结构又是一个结构变量,但它显示错误。这看起来是错误的:通过指针访问结构变量 #包括 #包括 #包括 typedef结构阳节点 { int mv1、mv2、mv3; }男性; typedef结构电影名称 { char-mvnm[20]; 结构雄性*ml; }电影; main() { 电影mov1; mov1.ml=(男性*)malloc(sizeof(男性)); mov1.(*ml).mv1=1;//错误 mov1.ml->mv1=1;//错误 },c,pointers,structure,C,Pointers,Structure,如何通过mov1和ml访问mv1变量 我试图通过ml访问mv1,ml是指向结构的指针,该结构又是一个结构变量,但它显示错误。这看起来是错误的: #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];
#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
}
您已经使用typedef
将male
定义为struct-male\u节点
,因此说struct-male
没有意义。相反,请尝试以下方法:
struct male *ml;
这将解决您的问题,您应该能够做到:
typedef struct movie_name
{
char mvnm[20];
male *ml;
} movie;
你能告诉我返回了什么错误吗?我知道你不必在
main
前面加int
,但当我看到它丢失时,我会很伤心。现代C真的允许省略返回类型吗?@RobK:不,现在需要了。谢谢。其实我没有注意到。它现在可以正常工作了代码>到(*mov1.ml).mv1=1代码>
mov1.ml->mv1=1;