void redimlista(char **lista_palabras,const int longitud_lista)
{
char **lista_temporal;
int i;
int num;
int longitud_lista_temporal;
char palabra[8];
/* Pido memoria para almacenar los punteros a cadena */
lista_temporal
=(char**)calloc(longitud_lista
,sizeof(char*));
/* Voy a copiar toda la lista de palabras al array temporal */
for(i=0;i<longitud_lista;i++)
{
/* Reservo memoria para almacenar la cadena 8 porque 8 es la longitud máxima de las palabras */
*(lista_temporal
+i
)=(char*)calloc(8,sizeof(char));
/*Copio la cadena */
strcpy(*(lista_temporal
+i
),*(lista_palabras
+i
)); }
/* Guardo la longitud del array de palabras */
longitud_lista_temporal=longitud_lista;
/* Elijo una palabra aleatoriamente de la lista de palabras */
num
=rand()%longitud_lista_temporal
;
/* Copio la palabra elegida */
strcpy(palabra
,*(lista_temporal
+num
));
/* Adelanto todos los elementos un lugar */
for(i=num;i<longitud_lista_temporal-1;i++)
*(lista_temporal+i)=*(lista_temporal+i+1);
/* Linea problematica */
free(*(lista_temporal
+i
));
longitud_lista_temporal--;
lista_temporal
=(char**)realloc(lista_temporal
,longitud_lista_temporal
*sizeof(char*));
/* .... mas codigo... */
}