Salve a tutti...![]()
Sto cercando di scrivere un programma in C che mi crei una matrice con allocazione dinamica, assegnando poi a ciascun elemento un valore casuale minore di 20...
Ho definito il tipo matrice come una struttura contenente un doppio puntatore a interi, e poi due interi, corrispondenti rispettivamente al numero di righe e colonne della matrice...
Ovviamente, se posto qui, è perchè c'è qualcosa che non torna.![]()
A livello di compilazione, non mi da problemi...Però quando lo mando in esecuzione si blocca..
Ho controllato dove potesse essere l'errore, e credo che il problema riguardi proprio l'allocazione della memoria...Non riesco però a individuare l'errore...
Vi allego il codice:
codice:#include <stdio.h> #include <time.h> #include <math.h> typedef struct { int **m; int r; int c; } mat; void Alloca(mat); main () { int i,j; mat M; M.r=5; M.c=6; Alloca(M); srand(time(NULL)); for (i=0,j=0;i<M.r;j++) { if (j==M.c) { j=0; i++; } M.m[i][j]= rand()%20; } for (i=0,j=0;i<M.r;j++) { if (j==M.c) { j=0; i++; printf("\n"); } printf("%d\t", M.m[i][j]); } } void Alloca (mat M) { int i; M.m=(int**)calloc(M.r,sizeof(int*)); for (i=0;i<M.r;i++) M.m[i]=(int*)calloc(M.c,sizeof(int)); return; }
Grazie per l'aiuto.![]()

 
 
						
					
					
					
						
  Rispondi quotando