En el código en el main cuando llamas a malloc() lo que hace es reservar memoria para una matriz de enteros de tamaño FILAS*COLUMNAS, pero lo tratas como si fuera un vector porque en C las matrices se representan en memoria como vectores.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
#include <stdio.h>
#include <stdlib.h>
#define FILAS 2
#define COLUMNAS 3
int matriz[FILAS][COLUMNAS] = { {1,2,3}, {4,5,6}};
int * matriz_dinamica;
/*
imprimir tratando la matriz como vector
*/
void imprimir_vector(int vector[]){
register int i;
for(i=0;i<FILAS*COLUMNAS;i++)
printf("%d ", vector[i]);
printf("\n");
}
/*
imprimir tratando la matriz como un puntero
*/
void imprimir_puntero(int * matriz){
register int i;
for(i=0;i<FILAS*COLUMNAS;i++)
printf("%d ", matriz[i]);
printf("\n");
}
int main()
{
register int i,j;
imprimir_vector(matriz);
imprimir_puntero(matriz);
int (*ptr_matriz)[COLUMNAS]; // Apuntador a una matriz
matriz_dinamica = (int*)malloc(sizeof(int)*FILAS*COLUMNAS);
ptr_matriz = matriz_dinamica;
ptr_matriz[0][0] = 1;
ptr_matriz[0][1] = 2;
ptr_matriz[0][2] = 3;
ptr_matriz[1][0] = 4;
ptr_matriz[1][1] = 5;
ptr_matriz[1][2] = 6;
for(i=0;i<FILAS;i++){
for(j=0;j<COLUMNAS;j++)
printf("%d ", ptr_matriz[i][j]);
printf("\n");
}
free(matriz_dinamica);
return 0;
}
matriz[i][j] = matriz + i * COLUMNAS + j
Printf("Introduzca 3 numeros: ");
string itoa(int n){
string rtn;
for(rtn="";n>0;rtn.insert(rtn.begin(),n%10+'0'),n/=10);
return rtn;
}