Kezdőoldal » Számítástechnika » Programozás » Az index a tömb határain...

Az index a tömb határain kivülre mutatott hiba, pedig csak értéket adnék változónak?

Figyelt kérdés

int q = i - 1;


ahol i-t pár sorral előbb hoztam létre és nem csináltam vele semmit:

int i = int.Parse(Console.ReadLine());


Az egész egy public static metódusban van egy classban.


Próbáltam mindenhogy átadni az i étékét, de nem engedi, a debugger jelzi a crashnél, h qq még 0, i pedig 1;



2017. nov. 25. 14:00
 1/8 anonim ***** válasza:
Ehelyett a katyvasz helyett, ami ide"írtál" nem lehetne bemásolni a kódot?
2017. nov. 25. 14:11
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:

public static void LerakasJatekos(Jatekos[] j,int o,string eredeti)

{

Console.WriteLine("TE KOVETKEZEL");

if (asztal.Length!=0)

{

Console.WriteLine("Az asztalon levo lapok:");

for (int y = 0; y < db; y++)

{

Console.WriteLine(asztal[y]);

}

}

Console.WriteLine("A kezedben levo lapok:");

for (int l = 0; l < j[o].lapokszama; l++)

{

Console.WriteLine(l + 1 + ".: " + j[o].lapok[l]);

}

if ((j[o].helyezes ==0)&&(asztal.Length!=0))

{

Console.WriteLine("5.: gyoztes viheti");

}

Console.WriteLine("8.:Jatek mentese es kilepes\n9.:Kilepes");

Console.WriteLine("Mit szeretnel tenni?");

int i = int.Parse(Console.ReadLine());

if (i==5)

{

j[o].viheti = true;

korvege = true;

osszesviheti++;

}

else if ((eredeti == j[o].lapok[i - 1])||(j[o].lapok[i-1]=="VII")||(eredeti==null))

{

db++;

asztal[db] = j[o].lapok[i-1];

int q = i - 1;

while (q < j[o].lapokszama)

{

j[o].lapok[q] = j[o].lapok[q + 1];

q++;

}

j[o].lapok[j[o].lapokszama] = null;

j[o].lapokszama--;

if(eredeti==null) eredeti = j[o].lapok[i - 1];

}

else

{

Console.WriteLine("Nem tudod lerakni ezt a lapot, valassz masikat.");

LerakasJatekos(j,o,eredeti);

}

}

2017. nov. 25. 14:18
 3/8 anonim ***** válasza:

Szűzmária.

Megbántam amit kértem.


Biztos nem kezdem el elemezgetni az összes 1 betűs változódat, ez 100%.

Millió helyen van indexelés, de nem nagyon értem, hogy debuggerrel hogy nem tudod megtalálni, hogy mi indexel félre.

Melyik sor az ami elszáll?

Mik a sorban szereplő változók értékei?

2017. nov. 25. 14:29
Hasznos számodra ez a válasz?
 4/8 A kérdező kommentje:

int q = i - 1; a vege fele.


Azt nem értem, hogy ennek a sornak köze sincs semmilyen tömbhöz, mindkét változó sima int,

2017. nov. 25. 14:33
 5/8 A kérdező kommentje:
privátba elküldöm az egész programot, ha esetleg van kedved lefuttatni
2017. nov. 25. 14:33
 6/8 anonim ***** válasza:
Most el kell mennem, de este kipróbálom, mert elég hihetetlennek hangzik...
2017. nov. 25. 14:35
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:
100%

while (q < j[o].lapokszama)

{

j[o].lapok[q] = j[o].lapok[q + 1];

q++;

}


Itt biztosan túlindexel az utolsó körben, mivel a q+1 indexre is hivatkozol, ami az utolsó lefutás során túlindexeli a tömböt.

2017. nov. 25. 16:16
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

"asztal[db] = j[o].lapok[i - 1];"

Ez a sor száll el.

A db 1, az asztal meg üres, mert 0 méretűnek hozod létre.

2017. nov. 25. 20:52
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!