Az index a tömb határain kivülre mutatott hiba, pedig csak értéket adnék változónak?
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;
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);
}
}
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?
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,
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.
"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.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!