Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Disallocare matrici in vettore di struct
Forum - C/C++ - Disallocare matrici in vettore di struct

Avatar
hasmet87 (Normal User)
Newbie


Messaggi: 1
Iscritto: 12/07/2008

Segnala al moderatore
Postato alle 11:05
Sabato, 12/07/2008
Salve, mi trovo con un problema che non so risolvere. Io ho allocato dinamicamente un vettore di struct, e dentro di esso ho creato due matrici dinamiche. Il problema è che non riesco a disallocarle, in quanto il programma termina mostrandomi un errore quando disalloco le righe delle matrici, non so come fare, quancuno mi può aiutare??? Grazie milleeeee
Codice sorgente - presumibilmente C++

  1. typedef struct{
  2.     char **bia,**ner;
  3. }giocatore;
  4. giocatore *vett;
  5. int main(){
  6.    int num=42;
  7. //alloco il vettore
  8.    vett=(giocatore *)calloc(dim,sizeof(giocatore));
  9. //alloco le matrici
  10.    vett[i].bia=(char **)calloc(30,sizeof(char));
  11.         for(j=0;j<30;j++){
  12.             vett[i].bia[j]=(char *)calloc(10,sizeof(char));
  13.             }
  14.    vett[i].ner=(char **)calloc(30,sizeof(char));
  15.         for(j=0;j<30;j++){
  16.             vett[i].ner[j]=(char *)calloc(10,sizeof(char));
  17.             }
  18.  
  19. //disalloco le matrici
  20. for(i=0;i<num;i++){
  21.         for(j=0;j<30;j++){
  22.             free(vett[i].bia[j]);
  23.             free(vett[i].ner[j]);
  24.             }
  25.         //arrivato qui mi dà un errore e il programma termina
  26.         free(vett[i].bia);
  27.         free(vett[i].ner);
  28.         }
  29.     free(vett);
  30. }


Ultima modifica effettuata da hasmet87 il 12/07/2008 alle 11:09
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 23:11
Sabato, 12/07/2008
Intanto, prima di iniziare a valutare il problema,

1) quanto vale dim ?

2) come mai utilizzi i nell'allocazione senza assegnargli un valore ?

PM Quote