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;
         }