#include
#include
#include
#define STRLEN 1024
#define MAX_ROWS 64 //numero massimo di righe (se è 10, 10 sarà accettato come input)
#define MAX_COLUMNS 64
void main(void)
{
char input[STRLEN];
int **ppmatrice;
int m,n,i_r,i_c,check,tot,a;
/********** INPUT **********/
printf("Ciao, dimmi il numero di righe m per creare una matrice m x n.");
check=0;
do
{
if(check<1)
{
printf("\nNumero di righe: m=");
scanf("%s",input);
m=atoi(input);
if((m<=MAX_ROWS)&&(m>0))
{
printf("Ho ricevuto %d",m);
check++;
}
else printf("Errore: inserisci un numero intero tra 1 e %d.",MAX_ROWS);
}
if(check>=1)
{
printf("\nNumero di colonne: n=");
scanf("%s",input);
n=atoi(input);
if((n<=MAX_COLUMNS)&&(n>0))
{
printf("Ho ricevuto %d",n);
check++;
}
else printf("Errore: inserisci un numero intero tra 1 e %d.",MAX_ROWS);
}
}
while(check<2);
tot=m*n;
printf("\nCreero' una matrice %d x %d\n",m,n);
/********** ALLOCAZIONE MEMORIA ***********/
ppmatrice=(int**)malloc(sizeof(int*)*m); //salva in ppmatrice l'indirizzo di un posto dove c'è abbastanza spazio per m puntatori a m righe
//per creare le colonne, facciamo un for che divida ogni riga in n colonne.
for(i_c=0;i_c<=n;i_c++)
{
*(ppmatrice+i_c)=(int*)malloc(sizeof(int)*n);
}
/********** RIEMPIMENTO MATRICE ***********/
printf("Ora dammi i %d x %d = %d numeri per riempire la matrice\n",m,n,tot);
for(i_r=0;i_r