c++ arrays
kodziarz: Mam pytanie dot. tablic w c++ w konkretnym przykładzie, ktory rysuje "x" z gwiazdek tj.:
#include<iostream>
#define SIZE 21
using namespace std;
int main(){
char tab[SIZE][SIZE+1];
int i, j;
for(i = 0; i < SIZE; i++){
for(j = 0; j < SIZE; j++)
tab[i][j] = (i == j) || (i + j == SIZE − 1) ? '*' : ' ';
tab[i][j] = '\0';
}
for(i = 0; i < SIZE; i++)
cout << tab[i] << endl; // przyczyna pytania
return 0;
}
jakim 'cudem' ten kod działa poprawnie, pytam ponieważ nie rozumiem jak to sie dzieje, ze
wczytywalismy znaki do tablicy dwu−wymiarowej, a odczytujemy z tej samej tablicy
jedno−wymiarowej
19 paź 18:06
jc: Wszystkie elementy tablicy leżą po kolei w pamięci.
1 2 3
4 5 6
= 1 2 3 4 5 6
19 paź 19:19
kodziarz: tzn, ze jesli jest np. tab[x][y]
to w pamieci tj. x1,y1,x2,y2 czy najpierw wszystkie 'x' a potem wszystkie 'y'?
19 paź 20:59
kodziarz: nie było pytania
zrozumiałem to, gdy pomysłałem, ze np. t[x][y] to tablica tablic
19 paź 21:01
Dziadek Mróz:
Macierz x wierszy, y kolumn. x tablic jednowymiarowych o rozmiarze y.
int **tab = new int*[x];
for (size_t i = 0; i < x; i++)
{
tab[i] = new int[y];
}
19 paź 21:32