Mam problem ze zrozumieniem "podwójnego" wskaźnika na tablicę. Przydzielam pamięć na 10 elementów tablicy zawierającej wskaźniki i wszystko do tego momentu jest w porządku.
int** ta = (int**) malloc(10 * sizeof(int*));
Wydawało mi, że następnie dostęp do tablicy możliwy będzie poprzez
*ta[i]
...natomiast można się do tej tablicy odwoływać zwyczajnie:
ta[i]
Dla przykładu poniższy kod działa:
int i = 0;
int** ta = (int**) malloc(10 * sizeof(int*));
srand(10);
for(i = 0; i < 10; i++) {
ta[i] = rand() % 10;
printf("%d\n", ta[i]);
}
Program wyświetla liczby, a nie (jak się spodziewałem) ich adresy wyświetlane jako %d:
1
9
2
4
7
6
2
2
6
9
Czy ktoś może wyjaśnić dlaczego?