Ver Mensaje Individual
  #13 (permalink)  
Antiguo 19/11/2015, 13:17
aguml
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 10 meses
Puntos: 3
Respuesta: problema con juego de palabras

Gracias amigo, ese era el problema, ya va perfecto. Ahora intento otra cosa. Ya que ya obtengo siempre una combinacion valida, La idea es volcar el archivo de cuatro letras a la memoria y barajar las palabras, luego empiezo leyendo desde la primera en la lista hasta llegar al final de la lista y si no sirve ninguna de cuatro para crear una combinacion sale. El problema lo tengo con esto:

Código C:
Ver original
  1. #define SIZE 10
  2. ...
  3. ...
  4. char *lista[SIZE];
  5. int nPalabras;
  6.  
  7. srand(time(NULL));
  8. ObtenerListaInicial("4_Letras.txt",lista,&nPalabras);
  9. ...
  10. ...
  11.  
  12. int ObtenerListaInicial(char *nameFile,char *palabra[SIZE],int *nElementos)
  13. {
  14.    int i=0,retval,posPalabra;
  15.    FILE *archivo;
  16.  
  17.    archivo=fopen(nameFile,"rb");
  18.    if(archivo != NULL){
  19.       fseek(archivo,0,SEEK_END);
  20.       *nElementos=ftell(archivo)/SIZE;
  21.       palabra=malloc(*nElementos*sizeof(char*));
  22.       if(palabra != NULL){
  23.          fseek(archivo,0,SEEK_SET);
  24.          do{
  25.             retval=fread(palabra[i],SIZE,1,archivo);
  26.             if(retval != 1)
  27.                break;
  28.             i++;
  29.          }while(!feof(archivo));
  30.       }
  31.       fclose(archivo);
  32.    }else{
  33.       retval=-1;
  34.    }
  35.    return retval;
  36. }

El problema que tengo es con el modo de reservar la memoria y luego escribir en ella. Se que lo estoy haciendo mal porque da una excepcion al intentar escribir en NULL pero no se como hacerlo bien.