Esercizio di programmazione C

Collapse
X
 
  • Filter
  • Ora
  • Show
Clear All
new posts
  • john89
    Inattivo
    • Jan 2008
    • 434
    • 133
    • 61
    • Send PM

    #16
    Originariamente Scritto da luna80 Visualizza Messaggio


    sorry me l'ero persa.

    è giusto come hai fatto tu allora
    Grazie mille rep

    Commenta

    • laplace
      Bodyweb Advanced
      • Dec 2005
      • 7984
      • 962
      • 1,370
      • Send PM

      #17
      Originariamente Scritto da john89 Visualizza Messaggio
      Ragazzi, mi servirebbe una mano con questo esercizio.
      Dati i seguenti tipi e variabili C:

      typedef struct{char cognome[20]; char nome[10]; int numero;} giocatore;

      typedef struct{int matricola_squadra; char nome[15]; char citta[10]; giocatore formazione[11];} squadra;

      int main () {...

      squadra squadre_torneo[6]

      Si calcoli la dimensione (riportando i calcoli) in byte della variabile squadre torneo. Si ipotizzi che la dimensione di un char sia pari a 1 byte e quella di un int pari a 2 byte.

      So che magari è molto semplice, basta eseguire semplici somme e moltiplicazioni? Perchè per esempio un char cognome[20] pesa 1 byte o essendo una stringa di max 20 caratteri pesa 20byte? Perchè non è detto che io riempa tutti i caratteri di ogni stringa, non avrebbero dovuto chiedermi qual è la lunghezza massima che la variabile piò pesare? Se qualcuno mi spiega un attimo e mi risolve l'esercizio gli sarei molto grato
      quando dichiari una variabile la memoria viene comunque allocata...

      Commenta

      • laplace
        Bodyweb Advanced
        • Dec 2005
        • 7984
        • 962
        • 1,370
        • Send PM

        #18
        Originariamente Scritto da john89 Visualizza Messaggio
        Grazie mille E' ingegneria gestionale.
        aiaiaiaiaai

        Commenta

        • laplace
          Bodyweb Advanced
          • Dec 2005
          • 7984
          • 962
          • 1,370
          • Send PM

          #19
          Originariamente Scritto da luna80 Visualizza Messaggio
          un numero intero son 32 bits e quindi 4 bytes, non 2 come hai messo qui sopra
          non è vero
          dipende dalla macchina. non è una regola che l'int sia 32 bit...

          Commenta

          • luna80
            Administrator
            • Jun 2005
            • 40500
            • 1,291
            • 1,310
            • Switzerland [CH]
            • Send PM

            #20
            Originariamente Scritto da laplace Visualizza Messaggio
            non è vero
            dipende dalla macchina. non è una regola che l'int sia 32 bit...
            si lo so...mi son dimenticata di aggiungere il "solitamente"

            Commenta

            • laplace
              Bodyweb Advanced
              • Dec 2005
              • 7984
              • 962
              • 1,370
              • Send PM

              #21
              Originariamente Scritto da luna80 Visualizza Messaggio
              si lo so...mi son dimenticata di aggiungere il "solitamente"
              ah ok

              Commenta

              • BLOOD black
                Bodyweb Advanced
                • Aug 2008
                • 8344
                • 497
                • 299
                • Nella mia testa
                • Send PM

                #22
                gli array vanno da 0 a n ,non da 1 a n
                quindi un char/int/type array[10] puo' contenere 11 elementi...

                Commenta

                • luna80
                  Administrator
                  • Jun 2005
                  • 40500
                  • 1,291
                  • 1,310
                  • Switzerland [CH]
                  • Send PM

                  #23
                  Originariamente Scritto da BLOOD black Visualizza Messaggio
                  gli array vanno da 0 a n ,non da 1 a n
                  quindi un char/int/type array[10] puo' contenere 11 elementi...


                  ne può contenere 10, gli indici dell'array saranno 0,1,2,3,4,5,6,7,8,9 e stop.

                  Commenta

                  • BLOOD black
                    Bodyweb Advanced
                    • Aug 2008
                    • 8344
                    • 497
                    • 299
                    • Nella mia testa
                    • Send PM

                    #24
                    Originariamente Scritto da luna80 Visualizza Messaggio


                    ne può contenere 10, gli indici dell'array saranno 0,1,2,3,4,5,6,7,8,9 e stop.
                    eddai poteva esser carino fare un buffer overflow

                    Commenta

                    • naoto
                      cavaliere prolisso
                      • Feb 2005
                      • 5375
                      • 970
                      • 529
                      • roma
                      • Send PM

                      #25
                      Originariamente Scritto da BLOOD black Visualizza Messaggio
                      eddai poteva esser carino fare un buffer overflow
                      Più che altro il compilatore non sarebbe stato daccordo ("index out of range")...
                      Lonely roses slowly wither and die

                      Commenta

                      • luna80
                        Administrator
                        • Jun 2005
                        • 40500
                        • 1,291
                        • 1,310
                        • Switzerland [CH]
                        • Send PM

                        #26
                        Originariamente Scritto da BLOOD black Visualizza Messaggio
                        eddai poteva esser carino fare un buffer overflow
                        index out of range

                        Commenta

                        • luna80
                          Administrator
                          • Jun 2005
                          • 40500
                          • 1,291
                          • 1,310
                          • Switzerland [CH]
                          • Send PM

                          #27
                          Originariamente Scritto da naoto Visualizza Messaggio
                          Più che altro il compilatore non sarebbe stato daccordo ("index out of range")...

                          mi hai preceduta per pochi secondi

                          cmq non mi ricordo se il compilatore si accorge di questo errore oppure se il problema salta fuori solo in esecuzione ritornando un bel "segmentation fault"

                          Commenta

                          • naoto
                            cavaliere prolisso
                            • Feb 2005
                            • 5375
                            • 970
                            • 529
                            • roma
                            • Send PM

                            #28
                            Originariamente Scritto da luna80 Visualizza Messaggio
                            mi hai preceduta per pochi secondi

                            cmq non mi ricordo se il compilatore si accorge di questo errore oppure se il problema salta fuori solo in esecuzione ritornando un bel "segmentation fault"
                            Hai ragione pure tu, dal momento che, a meno che il vettore non viene popolato all'interno della routine, l'errore a compile time non sarebbe individuato, ma a run time, non vi è scampo.
                            Lonely roses slowly wither and die

                            Commenta

                            • BLOOD black
                              Bodyweb Advanced
                              • Aug 2008
                              • 8344
                              • 497
                              • 299
                              • Nella mia testa
                              • Send PM

                              #29
                              se si sbaglia di un paio di elementi non si ha neppure un errore in fase di esecuzione... bisogna abbondare dai 5 0 6 elementi in piu'....
                              pero'....puo' darsi che i compilatori moderni se ne accorgono...

                              Commenta

                              • luna80
                                Administrator
                                • Jun 2005
                                • 40500
                                • 1,291
                                • 1,310
                                • Switzerland [CH]
                                • Send PM

                                #30
                                Originariamente Scritto da BLOOD black Visualizza Messaggio
                                se si sbaglia di un paio di elementi non si ha neppure un errore in fase di esecuzione... bisogna abbondare dai 5 0 6 elementi in piu'....
                                pero'....puo' darsi che i compilatori moderni se ne accorgono...
                                no no non son d'accordo, in esecuzione si sbaglia eccome a meno che non si iniziano ad usare puntatori e si lasciano in giro variabili "sporche" che poi si riutilizzano e "per caso" non sollevano l'eccezione.

                                Commenta

                                Working...
                                X