#include <stdio.h> #include <stdlib.h> main() { int **taboa; int a,b,x,y; printf("\nCantidade de filas e columnas: "); scanf("%d %d",&a,&b); if((taboa=(int **) malloc (sizeof(int *)*a))==NULL) printf("\nNon hai espazo na memoria pra meter a taboa\n"); printf("\nPosicion da taboa e contido da mesma: %lx %lx",(unsigned long) &taboa, (unsigned long) taboa); for(x=0;x<a;x++) { if((taboa[x] = (int *) malloc (sizeof(int)*b))==NULL) { printf("\nNon hai espazo na memoria"); break; } else { for(y=0;y<b;y++) { printf("\nDame o elemento %d %d: ",x,y); scanf("%d",&taboa[x][y]); } } } for(x=0;x<a;x++){ printf("\nPosicion punteiro do array da taboa e contido: %lx %lx", (unsigned long) &taboa[x], (unsigned long) taboa[x]); for(y=0;y<b;y++) printf("\nPosicion e dato do elemento %d %d: %lx %d",x,y, (unsigned long) &taboa[x][y],taboa[x][y]); } printf("\n"); //liberar memoria for (x=0; x<a;x++) free(taboa[x]); free(taboa); }