|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2006
Messaggi: 81
|
[C]Problema passaggio array di struct a funzione
Ciao a tutti,
ho un array "ready" contenente strutture di tipo "msg" da me definite. Il campo payload contiene un array di byte, i primi quattro (ai quali provo ad accedere con il cast a (int *)) rapresentano un numero progressivo. Nella definizione della funzione "ordina" il compilatore mi restituisce il seguente errore: "array type has incomplete element type" Vi ringrazio in anticipo per l'aiuto Codice:
typedef struct msg { char payload[100]; } msg ready[10]; void ordina(msg *ready) { printf("prova %d", *(int *)(ready[5]).payload); } |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Jan 2006
Messaggi: 81
|
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Codice:
typedef struct msg { char payload[100]; } msg ready[10]; Codice:
typedef struct msg { char payload[100]; } msg; msg ready[10];
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Non so che compilatore usi ma secondo me se non scrivi:
Codice:
typedef struct msg { char payload[100]; } msg; Codice:
struct msg ready[10]; void ordina(struct msg *ready) |
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: Jan 2006
Messaggi: 81
|
Quote:
il problema ovviamente persiste: Codice:
typedef struct msg { char payload[100]; } msg; msg ready[10]; void ordina(msg *ready) { printf("prova %d", *(int *)(ready[5]).payload); } |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Ho appena provato col seguente codice:
Codice:
#include <stdio.h> typedef struct { char payload[100]; } msg; msg ready[10]; void ordina(msg *ptr) { printf("prova %d", *(int *)(ptr[5]).payload); } int main() { int x; for (x = 0; x < 10; ++x) { char y; for (y = 0; y < 100; ++y) { ready[x].payload[y] = (y + 1); } } ordina(ready); return 0; } Codice:
typedef struct { char payload[100]; } msg; ![]()
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:43.