le varie strutture dati sono semplici astrazioni e in realtà sono combinazioni di operatori e dati usati con una certa logica e sintassi.
Una struttura dati come gli array multidimensionali ( matrici ) ovvero:
Codice:
char matrix[N][M]
la si intende come puntatore di puntatore per ogni singola cella, considerando 1 riga è un semplice puntatore; esempio:
tratto una riga come singolo puntatore
Codice:
strcpy(matrix[5],"Ciao Ciao");
in questa matrice ho copiato nella sesta riga la stringa "Ciao Ciao" specificando appunto solo la riga ovvero 1 puntatore.
l'esempio completo è
Codice:
#include <stdio.h>
#include <string.h>
#define N 10
void azzeraMatrice(char myMatrix[][N]);
void printMatrice(char myMatrix[][N]);
void main(){
char matrix[N][N];
azzeraMatrice(matrix);
strcpy(matrix[5],"Ciao Ciao");
printMatrice(matrix);
}
void azzeraMatrice(char myMatrix[][N]){
int i=0,j=0;
for(i=0;i<N;i++){
for(j=0;j<N;j++){
myMatrix[i][j]=0;
}
}
}
void printMatrice(char myMatrix[][N]){
int i=0,j=0;
for(i=0;i<N;i++){
for(j=0;j<N;j++){
printf("%c",myMatrix[i][j]);
}
printf("\n");
}
}