Punteros, función que crea una matriz de orden nxm
Estoy programando un jueguecillo con el allegro y necesito hacer una función que me haga una matriz de orden nxm pasándole un puntero "int **tabla" y el orden con "fila" y "col". El tema es que si hago la función sin pasarle el puntero( usando un puntero global) lo hace todo bien, pero pasándole el puntero a la función me da error . Te adjunto el código fuente.
---------- CÓDIGO ---------------------
#include <stdio.h>
#include <stdlib.h>
void tabla( int **tabla, int fila, int col);
main(){
int d1 = 4;
int d2 = 5;
int **a = NULL;
tabla( a, d1, d2);
for( int i = 0; i< d1; i++){
for( int j = 0; j < d2; j++)
printf( " %d" , a[j]);
printf("\n");
}
system("pause");
}
void tabla( int **tabla, int fila, int col){
tabla = new int *[fila];
for( int i = 0; i < col;i++)
tabla = new int [col];
for( int f = 0; f < fila; f++)
for( int c = 0; c<col; c++)
tabla[f][c] = rand()%10;
}
------------------- FIN ---------------
La intención de la función es crear un array de orden nxm en cualquier momento de ejecución, si puedes dime en donde meto la pata porque creía que tenia bastante superado el tema de los punteros.
---------- CÓDIGO ---------------------
#include <stdio.h>
#include <stdlib.h>
void tabla( int **tabla, int fila, int col);
main(){
int d1 = 4;
int d2 = 5;
int **a = NULL;
tabla( a, d1, d2);
for( int i = 0; i< d1; i++){
for( int j = 0; j < d2; j++)
printf( " %d" , a[j]);
printf("\n");
}
system("pause");
}
void tabla( int **tabla, int fila, int col){
tabla = new int *[fila];
for( int i = 0; i < col;i++)
tabla = new int [col];
for( int f = 0; f < fila; f++)
for( int c = 0; c<col; c++)
tabla[f][c] = rand()%10;
}
------------------- FIN ---------------
La intención de la función es crear un array de orden nxm en cualquier momento de ejecución, si puedes dime en donde meto la pata porque creía que tenia bastante superado el tema de los punteros.
1 respuesta
Respuesta de pedroyo
1