Newsgroup: it.comp.lang.c
Titolo: Le Strutture...... 'annaggia!!!

Ue Uagliu'(come si dice a Napoli....ehehe),
come va?......
beh.... vi ringrazio di tutti i consigli riguardanti gli input e output.....
ora ho capito come funziona .... e per vostra disgrazia .(ehehehe..... vi
dovete sorbire ancora una volta le mie stupidaggini)..... sto andando avanti
nello studio del C...... interessanti le Array...... sfiziosi i
#define...... rompipalle gli operatori * e &..... chi me li spiega?
Comunque ora sto cercando di capire le strutture "struct".... che tra le
altre cose sembrano essere molto utili..... (a saperle usare....hehehe).
Beh.... che ci crediate o no il sorgente qui di seguito l'ho scritto io
(bello sforzo....!!!....uhm!).... solo che vado a compilarlo ed e tutto
ok.... poi una volta stampato tutto l'output.... il mio bel C++Builder mi da
un errore improvviso e cioe "External Exception C000001D".... ed entra in
debugging!!
Quale sara' l'errore?
ecco il sorgente:
#include <stdio.h>
struct tabelline {
        int moltiplicando;
        int moltiplicante;
        int risultato;
                  };
main()
{
        register i;
        struct tabelline c[10];
        c[0].moltiplicando = 9;
        c[0].moltiplicante = 1;
        c[0].risultato = (c[0].moltiplicando * c[0].moltiplicante);
        c[1].moltiplicando = 9;
        c[1].moltiplicante = 2;
        c[1].risultato = (c[1].moltiplicando * c[1].moltiplicante);
        c[2].moltiplicando = 9;
        c[2].moltiplicante = 3;
        c[2].risultato = (c[2].moltiplicando * c[2].moltiplicante);
        c[3].moltiplicando = 9;
        c[3].moltiplicante = 4;
        c[3].risultato = (c[3].moltiplicando * c[3].moltiplicante);
        c[4].moltiplicando = 9;
        c[4].moltiplicante = 5;
        c[4].risultato = (c[4].moltiplicando * c[4].moltiplicante);
        c[5].moltiplicando = 9;
        c[5].moltiplicante = 6;
        c[5].risultato = (c[5].moltiplicando * c[5].moltiplicante);
        c[6].moltiplicando = 9;
        c[6].moltiplicante = 7;
        c[6].risultato = (c[6].moltiplicando * c[6].moltiplicante);
        c[7].moltiplicando = 9;
        c[7].moltiplicante = 8;
        c[7].risultato = (c[7].moltiplicando * c[7].moltiplicante);
        c[8].moltiplicando = 9;
        c[8].moltiplicante = 9;
        c[8].risultato = (c[8].moltiplicando * c[8].moltiplicante);
        c[9].moltiplicando = 9;
        c[9].moltiplicante = 10;
        c[9].risultato = (c[9].moltiplicando * c[9].moltiplicante);
        c[10].moltiplicando = 9;
        c[10].moltiplicante = 11;
        c[10].risultato = (c[10].moltiplicando * c[10].moltiplicante);
        for ( i = 0; i <=10; i++)
        printf ("%d  x   %d   =   %d\n",
c[i].moltiplicando,c[i].moltiplicante,c[i].risultato);
}

        for ( i = 0; i <=10; i++)
L'errore e' nel numero di cicli : i deve andare da 0 a 9 e non coprire
il valore 10.
In generale, per un array di n elementi, gli indici validi per
riferirsi ai suoi elementi sono quelli tra 0 e n-1.
--------------------------------------------------------
* Andrea Laforgia        (
andrea_...@bigfoot.com
) *
--------------------------------------------------------

 riferirsi ai suoi elementi sono quelli tra 0 e n-1.
grazie.....

il valore 10.
Inoltre lo stesso errore e' ripetuto qualche riga prima dove dice :
        struct tabelline c[10];
...
        c[0].moltiplicando = 9;
        c[0].moltiplicante = 1;
        c[0].risultato = (c[0].moltiplicando * c[0].moltiplicante);
...
