为什么我的结构变量不包含此成员?

时间:2017-02-27 09:23:51

标签: c list structure

我写了以下代码:

#include <stdio.h>
#include <stdlib.h>


typedef struct 
{
    int month;
    int day;
    int hour;  
    int minutes;
}primaries_date;

typedef struct 
{
    int all_members;
    char *country;
    primaries_date date;
}usa_primaries;

typedef struct node *ptr;

typedef struct node
{
    usa_primaries up;
    ptr next;
}Node;



void add(ptr usa_primaries *hptr, int all_members, char *con, int month,     int day, int hour, int minutes)
{
    ptr p;
    ptr q;
    ptr t;
    t = malloc(sizeof(Node));
    if(!t)
    {
         printf("Cannot build list");
         exit(0);
    }

    t->all_members = members;
    t->county = con;
    t->date->month = d->month;
    t->date->day = d->day;
    t->date->hour = d->hour;

   while( (p1) )
   {
       if( p->date->month >= month || p->date->day >= day ||     p->date->hour >= hour || p->date->minutes >= minutes )
       {
            q = p;
            p = p->next;
       }
   }

   if(p == *hptr)
   {
        *hptr  = t; /*Resetting head. Assigning to the head t*/
        t->next = p; 
   }
   else
   {
       q->next = t;
       t->next = p;
   }
}


int main()
{
   ptr h;
   int month, day, hour, minutes; 
   int all_memebers; /*Declaration of all_members*/
   char *county; 
   char member;
   printf("Please enter the day");
   scanf("%d",&day);
   printf("Please enter the month");
   scanf("%d",&month);
   printf("Please enter the hour");
   scanf("%d",&hour);
   printf("Please enter the minutes");
   scanf("%d",&minutes);
   printf("Is this an all-member candidate? Y/N");
   scanf("%c",&member);
   if(member == 'Y')
     all_members = 1;
   else
     all_members = 0;
   printf("Please enter the country");
   scanf("%s",&county);

   add(&h,all_members,country,month,day,hour,minutes);

   return 0;
}

我收到了这个错误:

usa.c: In function ���add���:
usa.c:42:6: error: ���struct node��� has no member named     ���all_members���
 t->all_members = members;
  ^

我真的不明白为什么会发生这个错误,因为all_members在结构usa_primaries中声明,而结构节点包含其中的结构usa_primaries。

为什么会显示此错误以及如何解决?

1 个答案:

答案 0 :(得分:2)

all_members没有usa_primaries。它有一个all_memberst->up.all_members 。因此:

my $ssh = Net::SSH::Perl->new("host1");
$ssh->login("root", "pass1");
$ssh->cmd("sh /opt/...");