Hola foreros!! Subo aqui un problema que tengo en un programa que estoy haciendo (no se si puede hacerse lo que quiero, hasta el momento no pude). El tema es el sig. desde una funcion llamo a otra que dentro declara un array estatico de punteros y muestre el dato relacionado con la posicion que le estoy pasando, el por que de declararlo estatico es para que no lo tenga que crear cada vez q vuelvo a entrar ya que la necesito en un bucle. Ahora quiero borrar el array estatico de la memoria ya q una vez salido del bucle no lo necesito mas, por eso devuelvo la direccion del array, pero cuando uso free() con la direccion de memoria devuelta en la funcion llamadora me tira error de memoria y aborta el programa. Repito, no se si se puede hacer lo que pretendo, por eso queria consultarlo con uds. Dejo aqui un ejemplo de lo que estoy tratando de lograr (No es el programa que estoy haciendo). Espero rtas y Gracias!!
void funcion1()
{
int i;
void *ptr = NULL;
for (i = 0; i < 5; i++){
if (ptr == NULL)
ptr = funcion2(i);
else
funcion2(i);
}
}
void *funcion2(int par)
{
static char *str[] = {
"UNO",
"DOS",
"TRES",
"CUATRO",
"CINCO"
};
return &str;
}