UPDATE: Also das Problem war wirklich einfach und ich habe die Antwort markiert. Vielen Dank!C++ Array-Index ist nach dem Ende des Arrays
Also ich versuche, eine einfache Konsole-Anwendung, die ein 2D-Array mit Bäumen '^' und haben sie jedes Mal, wenn ENTER getroffen wird, eine Wahrscheinlichkeit der Einstellung in Brand, wenn das benachbarte Array in Brand ist.
Das Problem ist der Array-Index sagt mir, ich bin außerhalb der Grenzen und dies schlägt das Update meiner Simulation.
Dies ist das Fehlerbild:
EDIT: Das mit der markierten Antwort festgelegt wurde, ist
Hier wird der aktualisierte Code das Problem enthält:
void updateForest(char grid[Max][Max], int probFactor)
{
char tempGrid[Max][Max];
for (int r = 0; r < Max; r++)
{
for (int c = 0; c < Max; c++)
{
tempGrid[Max][Max] = grid[Max][Max];
}
}
for (int r = 1; r < Max - 1; r++)
{
for (int c = 1; c < Max - 1; c++)
{
if (checkNeighbour(grid, r, c))
{
if ((rand()%100)+1 < probFactor && grid[r][c] == Tree)
{
tempGrid[r][c] = Burning;
}
if (grid[r][c] == Burning)
{
tempGrid[r][c] = Empty;
}
}
}
}
for (int r = 0; r < Max; r++)
{
for (int c = 0; c < Max; c++)
{
grid[r][c] = tempGrid[r][c];
}
}
}
Das Array hat 21 Elemente zu schreiben. Gültige Indizes sind 0, 1, ..., 19 und 20. Sie haben versucht, den Index 21 zu verwenden, der nicht gültig ist. Machen Sie Ihr Array größer oder indexieren Sie nicht so weit. – nwp
Sie sollten wirklich angeben, welche Zeile im Quellcode die Warnung auslöst. – Hurkyl
Auch ist es unklar, ob Ihre Frage ist, warum Array-Index 21 ein Problem sein sollte, oder warum Array-Index 21 zugegriffen wird. (oder etwas anderes) – Hurkyl