Originariamente inviato da oregon
Che vuol dire "non gli piace"?
Scusa ... ma questo modo di programmare non ha molto senso ...
Questo
void Alloca(mat);
l'hai corretto?
Più che programmare cerco di capire da programmi già fatti...
Ho fatto tutte le combinazioni possibili per l 'allocazione e quella che non da errori è quella
sotto...che però da "segmentation fault" in esecuzione . Pazienza.
codice:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
typedef struct {
int **m;
int r;
int c;
} mat;
void Alloca(mat M);
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;
}