Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [C++]Problema con la creazione di una tabella

    Ciao a tutti!
    Il mio problema è che quando creo un'applicazione con tabelle tipo:

    #define riga 2
    #define colonna 4

    main()
    {
    int tabella[riga][colonna] = {
    12, 24, 34, 43,
    4, 5, 6, 7 };

    cout << tabella[riga][colonna];

    il compilatore non mi segnala nessun errore, come in effetti mai mi era capitato, ma una volta eseguito il programma mi visualizza altri tipi di numeri. Sapreste dirmi il perché?
    Utilizzo Microsoft Visual C++.
    Questo problema lo riscontro da poco.
    Il sapere rende l'uomo libero!

  2. #2
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    quando ti mostra altri numeri vuol dire che hai bucato l'array. Gli indici massimi sono riga-1 e colonna-1.

    Quindi sarebbe:
    codice:
    cout << tabella[riga-1][colonna-1]
    Inoltre se non ricordo male l'inizializzazione degli array bidimensionali andrebbero dichiarata così:

    codice:
    int tabella[riga][colonna]=
                                {
                                     {12,24},
                                     {34,43},
                                     {4,5},
                                     {6,7}
                                };
    con le graffe tra un array e l'altro... e anche se non indispensabile un po' d'intentazione fa bene al programmatore
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  3. #3
    Non ho capito cosa intendi per aver 'bucato l'array'.
    Il sapere rende l'uomo libero!

  4. #4
    Riguardo all'inizializzazione dell'array il mio metodo ha sempre funzionato, grazie lo stesso!
    ;-)
    Il sapere rende l'uomo libero!

  5. #5
    ho provato come tu mi hai detto Mods, ma ugualmente ho dei problemi nella visualizzazione dei numeri che sono errati.
    Da premettere che prima tutti le applicazione scritte con gli array mi funzionavano ora non più.
    Mi è molto strana questa cosa!
    Il sapere rende l'uomo libero!

  6. #6
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    così funziona, almeno scrive 7

    codice:
    #define riga 4
    #define colonna 2
    
    #include <iostream>
    
    using namespace std;
    
    void main()  { 
    int tabella[riga][colonna] = {
                                     {12,24},
                                     {34,43},
                                     {4,5},
                                     {6,7}
                                };
    
    
    cout << tabella[riga-1][colonna-1] << endl; 
    
    }
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  7. #7
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    con bucare l'array si intende quando vai oltre l'indice massimo, ad esempio se dichiari l'array così:

    int a[20];

    L'indice va da 0 a 19. Se fai numeri maggiori di 19 o minori di 0 hai bucato l'array, ed il C++ non dà nessun errore.
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  8. #8
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da Paky808
    Riguardo all'inizializzazione dell'array il mio metodo ha sempre funzionato, grazie lo stesso!
    ;-)
    è vero, io ho sempre fatto con le graffe annidate. Ho scoperto oggi che sono facoltative, ma secondo me è bene metterle per chiarezza.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  9. #9
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    Non lo sapevo neanchio Cmq d'accordissimo, è una toccasana per il programmatore
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  10. #10
    Il mio problema è più strano di quanto pensassi:
    quando inizializzo un array con dei valori tipo 1, 2, 3 la stampa su video del contenuto dell'array non è 1, 2, 3 bensì dei numeri a casacci; cos'è successo al mio computer? è come se andasse a prendere parti di memoria a caso.
    Il sapere rende l'uomo libero!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.