Miksi taulukkoon tulee alkioita, joita en ole sinne sijoittanut?
Luon 2-ulotteisen taulukon:
int taulukko1 [10][3];
Luon random-funktiolla satunnaislukuja, jotka sijoitan taulukon yhdelle "riville":
randomize();
t=1 random(6);
u=1 random(28);
v=1 random(29);
z=(1 random(35-t));
taulukko1[3][0]=t;//tämä arvo sijoittuu myös edelliselle riville, kohtaan [2][3]
taulukko1[3][1]=u;
taulukko1[3][2]=v;
taulukko1[3][3]=z;//tämä arvo menee myös seuravalle riville kohtaan [4][0] sekä viimeiselle riville, kohtaan
[9][3]
Käsittämätöntä!?!?!?
Luon 2-ulotteisen taulukon:
int taulukko1 [10][3];
Luon random-funktiolla satunnaislukuja, jotka sijoitan taulukon yhdelle "riville":
randomize();
t=1 random(6);
u=1 random(28);
v=1 random(29);
z=(1 random(35-t));
taulukko1[3][0]=t;//tämä arvo sijoittuu myös edelliselle riville, kohtaan [2][3]
taulukko1[3][1]=u;
taulukko1[3][2]=v;
taulukko1[3][3]=z;//tämä arvo menee myös seuravalle riville kohtaan [4][0] sekä viimeiselle riville, kohtaan
[9][3]
Käsittämätöntä!?!?!?
Vastaukset 4
Vanhimmat
>...tämä arvo menee myös seuravalle riville
Miten tämä ilmenee ?
Olethan nollannut taulukon ennen ensimmäistä käyttökertaa ? Ettei se sisällä satunnaisia sijoituksia joltain aikaisemmalta ajokerralta.
>taulukko1[3][0]=t;//tämä arvo sijoittuu myös >edelliselle riville, kohtaan [2][3]
>taulukko1[3][1]=u;
>taulukko1[3][2]=v;
>taulukko1[3][3]=z;//tämä arvo menee myös >seuravalle >riville kohtaan [4][0] sekä >viimeiselle riville, >kohtaan
--
Tuossahan menet indeksoinnissa jo metsään, kun indeksi on [3][3]. Lisäksi taulukon alustamattomia indeksejä ei tule katsoa, jos taulukkoa ei aluksi ole nollattu tms.
Ensinnäkin kannattaa tuo taulukko tyhjentää aluksi.
Toisekseen taulukon indeksit menevät 0 - (n - 1), joten sijoitus taulukko[3][3] pistää väkisinkin (kyseessä siis jatkuva staattinen muisiblokki) arvon kohtaan taulukko[4][0].
Tossa tapauksessa indeksit on [0-9] ja [0-2].
Taulukko oli nollattu alussa.
Huomasin nyt, missä tein virheen.
Kiitos kaikille.