Zdravím,
právě čtu jednu knihu a narazil jsem na příklad kódu v souvislosti s přístupem do paměti. No a tak jsem se to rozhodl všelijak vyzkoušet a mám následující kód:
#include <iostream>
#define M 512
int main()
{
int i, j;
int pole[M][M];
for( i=0; i<M; ++i )
for( j=0; j<M; ++j )
pole[j][i] = 25;
system("pause");
return 0;
}
Zkompiloval jsem to ve Visual C++ 2010 a po spuštění mi debbuger hlásí chybu Stack Overflow - zakázaný přístup do paměti. Následně mě to vyhodí nějaký kód v assembleru. Tento problém hlásí pokud je M větší než cca 500.
Pokud ale přehodím indexi v přístupu k poli na: pole[i][j], vše je v pořádku.
Nemohl by někdo chytřejší trochu osvětlit co se děje v pozadí ? :smile11: Protože normálně bych čekal, že na pořadí indexů nezáleží.
Díky za jakoukoliv odpověď :smile1: