:master: Avevo visto un esempietto, tempo fa, sul passaggio di una matrice con doppio puntatore. Però non riesco a ricordarmi come si fa ( ho provato e non ho ottenuto risultati ).
Cmq, sempre considerando un passaggio più generale possibile, per favorire il riutilizzo del software, eccoti un esempio sul passaggio di una matrice per riferimento, utilizzando un semplice puntatore:
codice:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void inizializza (char *Matrix, unsigned int n, char carattere);
void stampa (char *Matrix, unsigned int n);
int main()
{
clrscr ();
char matrice [10][10];
inizializza ((char *)matrice, 10, 'A');
for (unsigned int i = 0; i < 10; i ++)
{
for (unsigned int j = 0; j < 10; j++)
cout << matrice[i][j] << '\t';
cout << endl;
}
cout << "\n Stampo : \n\n";
stampa ((char *)matrice, 10);
getch ();
return 0;
}
void inizializza (char *Matrix, unsigned int n, char carattere)
{
for (unsigned int i = 0; i < n; i ++)
{
for (unsigned int j = 0; j < n; j++)
{
*Matrix = carattere;
Matrix ++;
}
carattere ++;
}
}
void stampa (char *Matrix, unsigned int n)
{
for (unsigned int i = 0; i < n*n; i+=n)
{
for (unsigned int j = 0; j < n; j++)
cout << Matrix[i+j] << '\t';
cout << endl;
}
}
E' in Cpp, ma non credo sia un problema, visto che quello che ci interessa è valido sia in cpp che in c.
PS: La matrice è quadra, quindi molto semplice il suo utilizzo. Per una matrice non quadra dovresti passare indice di riga e di colonna anche