Saludos Ozonek:
Tengo la Impresion de que el prototipo de la funcion es incorrecto ya que buffer es un arreglo de punteros y el prototipo debe ser:
void dibujar_ahorcado(char *buffer[]);
ó
void dibujar_ahorcado(char **buffer);
Las dos declaraciones indican lo mismo que: buffer es un puntero a un arreglo de punteros.
de tal forma que:
si el programa es :
...
char buffer[4][6];
/***
Se Cargan Los 4 Elementos de la
matriz con maximo 5 caracteres c/u
***************************/
strcpy(buffer[0], "Ele_1");
strcpy(buffer[1], "Ele_2");
strcpy(buffer[2], "Ele_3");
strcpy(buffer[3], "Ele_1");
...
/***
Pasar buffer como parametro
**********************/
dibujar_ahorcado(buffer);
...
/***
Sigue la Funcion Principal...
*********************/
/**************************
Cuerpo de dibujar_ahorcado(char **B_uffer);
Parametro: Puntero al Arreglo de
Punteros. debes controlar que la
funcion no exeda los limites definidos
cuando declaraste buffer. es decir
B_uffer va a apuntar a una matrix
de 4 Elementos que apuntan a un
arreglo de 6 elementos cada uno.
**************************/
void dibujar_ahorcado(char **B_uffer)
{
/***
Si Por Ejemplo quiero imprimir el
caracter almacenado en el primer
elemento del Primer Arreglo:
**** *********************/
putchar(B_uffer[0][0]); // Imprimira E
putchar(B_uffer[0][1]); // Imprimira l
putchar(B_uffer[0][2]); // Imprimira e
putchar(B_uffer[0][3]); // Imprimira _
putchar(B_uffer[0][4]); // Imprimira 1
/***
B_uffer[0][5]) // contendra /0 = 0
**************************/
/***
y de esta manera podras accesar cada uno de los elementos de la matriz. Debes tomar en cuenta que el primer elemento de la matriz es el B_uffer[0][0] y el Ultimo
es el B_uffer[3][5] Por que esto no lo controla el C.
Si Utilizas Por ejemplo el elemento B_uffer[100][10] el programa compilara bien, pero dara un error en tiempo de ejecución que dependera del compilador y del sistema operativo que este Usando por que habra una violacion del area de memoria que destinaste al declarar el arreglo.
Esperando te sirva la información
Saludos:
Bench.
http://www.BenchSQL.com/ Prototipo de la funcion que lo recibe
........
........
// Dentro de una funcion llamada control (que recibe un array como parametro), declaro el array que quiero pasar
y luego llamo a la funcion tres veces:
char buffer[4][6];