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++ - Problema allocazione dinamica / strutture
Forum - C/C++ - Problema allocazione dinamica / strutture

Avatar
Hunter-combo (Normal User)
Newbie


Messaggi: 9
Iscritto: 28/02/2014

Segnala al moderatore
Postato alle 23:02
Sabato, 08/03/2014
Mi sapete dire perchè questo programma termina in modo anomalo ?
L'errore credo sia legato alla gestione della memoria nell'assegnamento alle strutture,ma non riesco a trovarlo.
Grazie in anticipo.

http://pastebin.com/KMxWKFfk

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6380
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 23:42
Sabato, 08/03/2014
Questa linea deve essere

Codice sorgente - presumibilmente Plain Text

  1. informazioni->dati_sport = dati;



Però, modificherei così il codice

Codice sorgente - presumibilmente C/C++

  1. Info *informazioni = NULL;
  2.  
  3.     informazioni = (Info *)malloc(sizeof(Info));
  4.     if(informazioni == NULL)
  5.         {
  6.                 printf("Errore");
  7.         return 1;
  8.     }
  9.  
  10.     informazioni->dati_sport = (Sport *)malloc(sizeof(Sport));
  11.     if(informazioni->dati_sport == NULL)
  12.         {
  13.                 printf("Errore");
  14.         return 1;
  15.     }
  16.  
  17.     printf("\nInserisci ID : ");
  18.     scanf("%d", &informazioni->ID);
  19.     getchar();
  20.  
  21.     printf("\nNome sport :");
  22.     gets(informazioni->dati_sport->Nome_sport);
  23.  
  24.     printf("\nInserisci le ore :");
  25.     scanf("%d", &informazioni->dati_sport->Ore);
  26.  
  27.     printf("\nID: %d", informazioni->ID);
  28.     printf("\nNome sport : %s", informazioni->dati_sport->Nome_sport);
  29.     printf("\nOre  sport : %d", informazioni->dati_sport->Ore);
  30.  
  31.     free(informazioni->dati_sport);
  32.         free(informazioni);
  33.  
  34.     return 0;


Ultima modifica effettuata da nessuno il 09/03/2014 alle 0:05


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Hunter-combo (Normal User)
Newbie


Messaggi: 9
Iscritto: 28/02/2014

Segnala al moderatore
Postato alle 17:59
Martedì, 11/03/2014
Ciao, grazie delle risposta :k:

Avrei un altro problema , ho modificato il programma in modo tale da poter aggiungere, al richiamo della funzione "Aggiungi", i dati dentro una struttura allocata dinamicamente, purtroppo l'inserimento non va a buon fine.

http://pastebin.com/uj7SGWxv

Sapresti dirmi dove sbaglio ? O avresti qualche consiglio su come poter svolgere questo esercizio. Grazie.

PM Quote
Avatar
Hunter-combo (Normal User)
Newbie


Messaggi: 9
Iscritto: 28/02/2014

Segnala al moderatore
Postato alle 17:20
Giovedì, 13/03/2014
Risolto :D

PM Quote