Hola compañeros.
Quiero saber si es posible crear matrices bidimensionales de punteros a funciones en C.
Muchas gracias. ;D
Cita de: blackshack_zero en 29 Agosto 2015, 01:50 AM
Hola compañeros.
Quiero saber si es posible crear matrices bidimensionales de punteros a funciones en C.
Muchas gracias. ;D
Querrás decir si a una función le puedes pasar una matriz creada con punteros, es decir, dinámica, si es así te pongo un ejemplo:
#include <stdio.h>
#include <stdlib.h>
void funcion(int **);
int main() {
int **mi_matriz;
mi_matriz=(int **)malloc(sizeof(int *)*10);
int x;
for(x=0;x<10;x++) mi_matriz[x]=(int *)malloc(sizeof(int)*10);
mi_matriz[3][4]=5;
funcion(mi_matriz);
return 0;
}
void funcion(int ** matriz) {
printf("El numero es %d\n", matriz[3][4]);
}
Espero haberte sido de ayuda.
Saludos.
Cita de: blackshack_zero en 29 Agosto 2015, 01:50 AM
Hola compañeros.
Quiero saber si es posible crear matrices bidimensionales de punteros a funciones en C.
Muchas gracias. ;D
Hola, pues la idea es la misma que cuando haces un arreglo de punteros a funciones, solo que le añades una dimensión más. Mira este ejemplo tonto:
#include <stdio.h>
void f1(void);
void f2(void);
void f3(void);
void f4(void);
int main()
{
void (*funcPtr[2][2])(void);
funcPtr[0][0] = &f1;
funcPtr[0][1] = &f2;
funcPtr[1][0] = &f3;
funcPtr[1][1] = &f4;
(*funcPtr[0][0])();
(*funcPtr[0][1])();
(*funcPtr[1][0])();
(*funcPtr[1][1])();
return 0;
}
void f1(void) { printf("Llamada a f1\n"); }
void f2(void) { printf("Llamada a f2\n"); }
void f3(void) { printf("Llamada a f3\n"); }
void f4(void) { printf("Llamada a f4\n"); }
Donde la salida será:
Llamada a f1
Llamada a f2
Llamada a f3
Llamada a f4
Saludos!
Ten en cuenta que una matriz o un array guardan cualquier tipo de elemento o variable, y más aun si es un puntero, puesto que no es más que una dirección, que a nivel práctico es un valor entero.