Ciao a tutti, mi servirebbe una struttura dati di questo tipo
- un array di 20 elementi
- ogni elemento è un puntatore ad una struttura
Nel mio caso ho una lista di giocatori, stavo pensando di implementarla così:
Codice PHP:
struct persona {
int eta;
int peso;
};
struct persona * persone[20]; // va bene così?
ho fatto un programma di esempio, che aggiunge 2 persone:
Codice PHP:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main() {
struct persona {
int eta;
int peso;
};
struct persona * persone[20]; // va bene così?
int i;
for (i=0; i<20; i++)
persone[i] = NULL;
// allocazione dinamica di una persona
struct s * p;
*p = malloc(sizeof(struct s));
*p.eta=20;
*p.peso=65;
persone[5] = p; // così il 5° elemento dell'array punta alla persona creata
// stessa cosa ma aggiungo una nuova persona all'8° elemento
*p = malloc(sizeof(struct s));
*p.eta=50;
*p.peso=75;
persone[8] = p;
// stampa della lista delle persone
for (i=0; i<20; i++)
if (persone[i] == NULL)
printf("%2d\n", i);
else
printf("%2d: eta=%d, peso=%d\n", i, persone[i].eta, persone[i].peso);
return 0;
}
Il compilatore (gcc) mi dà tutti questi errori:
prova.c: In function 'main':
prova.c:22: error: incompatible types in assignment
prova.c:23: error: request for member 'eta' in something not a structure or union
prova.c:24: error: request for member 'peso' in something not a structure or union
prova.c:27: error: incompatible types in assignment
prova.c:28: error: request for member 'eta' in something not a structure or union
prova.c:29: error: request for member 'peso' in something not a structure or union
prova.c:36: error: request for member 'eta' in something not a structure or union
prova.c:36: error: request for member 'peso' in something not a structure or union
dove ho sbagliato?