|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Sep 2007
Messaggi: 59
|
[C] invalid type argument of ‘->’
Salve a tutti,
sono un grande newbie per quel che riguarda C e vi volevo chiedere il perchè mi da il seguente errore: invalid type argument of ‘->’ (have ‘Hand’) quando faccio qualcosa del tipo: int min1=m1->mano[0]->numero; Dove si ha: Codice:
enum seme{ Cuori, Quadri, Fiori, Picche }; typedef enum seme Seme; struct card{ int numero; // 1-13 Seme seme; }; typedef struct card Card; struct mano{ Card mano[5]; }; typedef struct mano Hand; Son sicuro che è prorpio una mia mancanza a livello teorico, grazie a tutti per le eventuali risposte ![]() |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Quote:
Codice:
int min1 = m1.mano[0].numero; |
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Sep 2007
Messaggi: 59
|
Così sembra andare, qual'è la differenza fra l'operatore '->' e l'operatore '.' ? Cioè perchè in questo caso -> non va, mentre . sì ?
Grazie anche per la risp di sopra ![]() Penso di averlo capito da me, in pratica se opero con puntatori a strutture uso ->, se opero direttamente su di una struttura devo usare '.', giusto ? Ultima modifica di cifa : 10-09-2011 alle 19:12. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
Quote:
Più formalmente, Codice:
pStruttura->elemento; Codice:
(*pStruttura).elemento; Questo, ovviamente, se hai a che fare con un puntatore a struttura. Se hai già la struttura, tipo: Codice:
struct MiaStruttura { int elemento; //... }; MiaStruttura str; Codice:
str.elemento; |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:51.