[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Estrutura e ponteiros



Olá...

Uma outra dúvida, relacionada com a anterior...

Quando Item era definido como char *, tinha a seguinte função no módulo
Item.c:

-----------------------------------------------------------------------

int ITEMscan(char **x)
  { int t;
    *x = &buf[cnt]; 
    t = scanf("%s", *x); cnt += strlen(*x)+1;
    return t;
  }  

-----------------------------------------------------------------------

Como agora Item é definido assim:

-----------------------------------------------------------------------

typedef struct Item_struct { char *word; int rep; } Item;

-----------------------------------------------------------------------

penso que tenho que alterar esta função para

-----------------------------------------------------------------------

int ITEMscan(Item *x) 
  { int t;
    *x.word = &buf[cnt]; 
    t = scanf("%s", *x.word); cnt += strlen(*x.word)+1;
    *x.rep = 0;
    return t;
  }  

-----------------------------------------------------------------------

Mas obtenho o seguinte erro na compilação:

<1micro04:~/C/Lista1/Ex18/novo> $ gcc Item.c ST.c driver.c 
Item.c:12: invalid initializer
Item.c: In function `ITEMscan':
Item.c:16: request for member `word' in something not a structure or union
Item.c:17: request for member `word' in something not a structure or union
Item.c:17: request for member `word' in something not a structure or union
Item.c:18: request for member `rep' in something not a structure or union


Não entendo....... :-)
Leo.