Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C]Programma con struct che crasha

    Eccovi il programma:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    typedef struct classifica* classific;
    struct classifica{
           char* squadra;
           int punti;
           classific succ;
           };
    
    typedef struct punteggi* squadre;
    struct punteggi{
           char* casa;
           char* ospite;
           int goalc;
           int goalo;
           squadre next;
           };       
    squadre inseriscicoda(squadre il, char* casa, char* ospite, int goalc, int goalo,classific classi);   
    void creapunteggio(squadre il,classific classi); 
    void stampasquadre(squadre il);   
    
    int main(int argc, char *argv[])
    {
      squadre il; classific classi;
      il=NULL; classi=NULL;
      char* squadra; char* squadradue; int goal; int goaldue; squadra=malloc(sizeof(char)*256); squadradue=malloc(sizeof(char)*256);
      FILE* fp;
      fp=fopen("squadre.txt","r");
      if(fp==NULL){
        printf("Errore nell'aperture del file\n"); return 0;}
      while(!feof(fp))
      {
        fscanf(fp,"%256[^ ] %256[^ ] %d %d\n",squadra,squadradue,&goal,&goaldue);
        il=inseriscicoda(il,squadra,squadradue,goal,goaldue,classi);
        if (il==NULL)
        {
          il=malloc(sizeof(struct punteggi));il->next=NULL;                                       
          il->casa=malloc(sizeof(char)*256); il->ospite=malloc(sizeof(char)*256);
          strcpy(il->casa,squadra); strcpy(il->ospite,squadradue); il->goalc=goal; il->goalo=goaldue;
          crepunteggio(il,classi);
          }
        } 
        stampasquadre(il);
      system("PAUSE");	
      return 0;
    }
    
    squadre inseriscicoda(squadre il, char* casa, char* ospite, int goalc, int goalo,classific classi)
    {
      if(il==NULL) return il;
      squadre t=il;
      while(t->next!=NULL) t=t->next;
      squadre nuovo; nuovo=malloc(sizeof(struct punteggi)); nuovo->next=NULL;
      nuovo->casa=malloc(sizeof(char)*256); nuovo->ospite=malloc(sizeof(char)*256);
      strcpy(nuovo->casa,casa);strcpy(nuovo->ospite,ospite);nuovo->goalc=goalc;nuovo->goalo=goalo;
      creapunteggio(nuovo,classi);
      t->next=nuovo; 
      return il;}
    
    void creapunteggio(squadre il,classific classi)
    {
         classific t=classi;
         if (t==NULL) t=malloc(sizeof(struct classifica));
         }
           
         
      
    void stampasquadre(squadre il)
    {
     while(il!=NULL){
      printf("%s->%s->%d->%d\n",il->casa,il->ospite,il->goalc,il->goalo);
      il=il->next;}}
    Il problema sta nella funzione creapunteggio, il compilatore mi dice "undefined reference to "creapunteggio". Come mai?

  2. #2
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Ce un il = NULL dopo il malloc credo sia sbagliato.
    Per gli Spartani e Sparta usa spartan Il mio github

  3. #3
    Ho risolto, ora vi posto il codice corretto con un nuovo aggiornamento

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.