Buonasera a tutti, sono nuovo nel forum e ho da poco iniziato a studiare il c all'università.
Ho un dubbio riguardo i puntatori.
Se io ho un array bidimensionale (che è un array i cui elementi puntano ad un altro array), il nome dell'array bidimensionale è il puntatore dell'array. Quindi se io ho
int b[][2] = {{1,2}.{3,4}} b è l'indirizzo dell'array che contiene i riferimenti agli altri due array.
Quindi teoricamente b dovrebbe essere un puntatore di un puntatore, giusto?
Se io faccio questa prova:
#include <stdio.h>
int main() {
void prova(int**);
int b[][2] = {{1,2}.{3,4}};
prova(b);
return 0;
}
void prova(int **a) {
printf("%d\n", **a);
}
mi crasha. perchè?
se io scambio prova(b) (in main) direttamente con printf("%d\n", **b) mi stampa 1, eppure prova(int**) richiede un puntatore di un puntatore e io glielo dò appunto con b.
Mi date una mano? Vi ringrazio in anticipo
(mi scuso per eventuali cavolate che ho scritto)