|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Oct 2008
Messaggi: 20
|
[C]array dinamico di una struttura
ciao ragazzi!ho un piccolo problemino
ho fatto un programma in C dove ho varie strutture(quella problematica è così): struct razza{ char nome[15]; int vitamin,vitamax,forzamin,forzamax,ablmin,ablmax,arma,armatura,anelli; }; typedef struct razza Razza; variabili globale N che è = alle righe che ci sono dentro un file,se aumento le righe del file devo anche aumentere N e dentro il main: Razza gen[N]; il prof mi ha detto che così va bene ma sarebbe meglio se ogni volta leggessi dal file le righe e usassi la malloc o la calloc x fare il vettore,quindi ho sostituito gen[N] con *gen, ho una variabile con le righe del file ma ora come faccio a fare un vettore gen come quello che avevo prima? spero di essermi spiegato abbastanza chiaramente...grazie in anticipo Ultima modifica di Romba91 : 14-10-2008 alle 19:08. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4907
|
Fai leggere il numero di righe al programma e salvalo in N...
Per allocare l'array dinamicamente: Codice:
Razza* gen = (Razza*)calloc(N, sizeof(Razza)); if (gen == NULL) { //La memoria non è stata allocata } Codice:
free(gen); |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Oct 2008
Messaggi: 20
|
è la stessa cosa se faccio prima
Razza* gen; e poi gen=(Razza*)calloc(N, sizeof(Razza));?? altrimenti mi verrebbe un po difficile la cosa... |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4907
|
Quote:
PS: La parte importante (probabilmente quella che voleva il professore) è leggere il numero di linee dal file... Ultima modifica di ||ElChE||88 : 14-10-2008 alle 19:38. |
|
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Oct 2008
Messaggi: 20
|
ah ok grazie 1000
![]() cmq i file li sappiamo usare abbastanza bene la parte un po + difficile per noi è l'uso della malloc o calloc dato che ce l'ha spiegate da poco e non abbiamo molta confidenza... e grazie ancora |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:17.