elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8 9
31  Programación / Programación C/C++ / Re: Fallo de segmentacion con fgets y Array de cadenas. en: 7 Marzo 2011, 00:37 am
Muchas gracias, aunque en ese caso estaría guardando la cadena con un salto de linea, ¿no?
32  Programación / Programación C/C++ / Re: Fallo de segmentacion con fgets y Array de cadenas. en: 6 Marzo 2011, 18:53 pm
Muchas gracías estaba algo confuso con malloc ya creo que entiendo su funcionamiento.
Solo una cosa mas, ¿si no uso fflush(); podría generarse fallos en el programa?, es que he leido mucho en este foro, incluso un post de cosas que no se deben hacer, y una de ellas es utilizar fflush(), desde entonces no me hace gracia usarlo xD
33  Programación / Programación C/C++ / Re: Fallo de segmentacion con fgets y Array de cadenas. en: 4 Marzo 2011, 22:23 pm
Pero tengo que usar estructuras para usar malloc, ¿no?
¿Que es mejor los métodos expuestos o usar una estructura?
34  Programación / Programación C/C++ / Re: Fallo de segmentacion con fgets y Array de cadenas. en: 4 Marzo 2011, 15:09 pm
Muchísimas gracias por las respuestas, me han sido de gran ayuda para comprender mejor los punteros.
Una preguntita, ¿con malloc habría alguna forma también de hacer lo que quiero?

El caso es que quiero hacer eso por que tengo una función para meter datos en una estructura y los datos para simplificar el código se los quiero pasar mediante un array de cadenas.
¿Que veis mejor utilizar un array de cadenas o pasarle una estructura a la función con dichos datos? es mas que nada para quitarme complicaciones de punteros.
Un saludo y gracias de nuevo.
35  Programación / Programación C/C++ / Fallo de segmentacion con fgets y Array de cadenas. en: 3 Marzo 2011, 03:15 am
Saludos.

Tengo la siguiente duda, estoy implementando un array de cadenas de caracteres de la siguiente forma, pero me da fallo de segmentación cuando intento guardar los datos, necesito usar una función que controle el número de caracteres a insertar como fgets, pero no conozco ninguna y fgets me da dicho error.
Me gustaría saber por ocurra el fallo de segmentación y si hay alguna forma de solucionarlo.
Dejo el código a continuación:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef char *strings;
  6.  
  7. int main(){
  8.  
  9.    strings info_variable[4];
  10.  
  11.    fgets(info_variable[0],30,stdin);
  12.  
  13.    printf("%s",info_variable[0]);
  14.  
  15.    getchar();
  16.  
  17.    return 1;    
  18. }
  19.  
36  Programación / Programación C/C++ / Re: Problema para pasar una lista a fichero con Fwrite en: 21 Febrero 2011, 01:06 am
Muchas gracias, al final me di cuenta de que la función fwrite y fread no reciben un puntero a una estructura si no una estructura en si, de esta forma los datos se almacenan en dicha estructura, ese era mi problema, usando un estructura auxiliar para leer los datos con fread lo he conseguido sin problemas.
Un saludo.
37  Programación / Programación C/C++ / Re: Problema para pasar una lista a fichero con Fwrite en: 19 Febrero 2011, 18:55 pm
Fbin he estado haciendo pruebas con el codigo que me pusiste, pero he notado algunos fallos, supuestamente el fichero es independiente de la estructura, pero el caso es que si borro la estructura y luego leo el fichero me da lo que supuestamente tendría que ser dni, etc.. posiciones de memoría extrañas, no debería a ver problema si borrara la lista y luego leyese la estructura ¿no?, también he probado leyendo el archivo desde un programa externo y me da el mismo error, me lee y me da muchos números, adjunto el programa desde el cual he leido el fichero:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct _nodo {
  5.  int dni;
  6.  int fecha;
  7.  struct _nodo *siguiente;
  8. } tipoNodo;
  9.  
  10. void leer_fic(){
  11.     FILE *fp;
  12.     tipoNodo *aux;
  13.     int a = 0;
  14.  
  15.     fp = fopen("pacientes.txt","r+b");
  16.  
  17.     while(!feof(fp)){
  18.      a = fread(&aux,sizeof(tipoNodo),1,fp);
  19.      if(a != 0){
  20.           puts("LECTURA!");
  21.           printf("DNI:%d\n",aux->dni);
  22.           printf("FECHA:%d\n",aux->fecha);
  23.           printf("%d\n",a);
  24.           puts("FIN DE LECTURA\n");
  25.      }
  26.     }
  27.     fclose (fp);
  28. }
  29.  
  30. int main(){
  31. leer_fic();
  32. return 0;  
  33. }
  34.  

Un saludo.
38  Programación / Programación C/C++ / Re: Problema para pasar una lista a fichero con Fwrite en: 19 Febrero 2011, 18:24 pm
Lo siento fermo jeje es tal y como dices, me dolía bastante la cabeza y tuve ese descuido y no sabía muy bien por que era, luego lo arregle y corregí el post que puse preguntando esa duda.

La única duda que tengo ahora mismo a la hora de insertar y leer desde el archivo es como puedo hacerlo usando punteros locales a la función main, sin definir nuevos tipos de datos que sean punteros a la propia estructura ya de por si, lo he intentado pero siempre me da fallos.

Un saludo y gracias por la corrección.
39  Programación / Programación C/C++ / Re: Problema para pasar una lista a fichero con Fwrite en: 19 Febrero 2011, 14:46 pm
Muchisimas gracías por mostrarme la forma de escribir y leer correctamente con el archivo, solo una duda que tengo al respecto, es sobre mi forma de definir el trabajo con listas.

Tu defines dos nuevos tipo de datos que son en realidad dos punteros a la misma lista o mejor dicho defines la forma de trabajar con dos listas diferentes pero con la misma estructura de datos:

Código
  1. typedef struct _nodo {
  2.  int dni;
  3.  int fecha;
  4.  struct _nodo *siguiente;
  5. } tipoNodo;
  6.  
  7. typedef tipoNodo *pNodo;
  8. typedef tipoNodo *Lista;

El caso es que yo eso lo hago de la siguiente forma:

Código
  1. typedef struct _nodo {
  2.  int dni;
  3.  int fecha;
  4.  struct _nodo *siguiente;
  5. }tipoNodo;
  6.  
  7. int main(){
  8. tipoNodo *pNodo;
  9. tipoNodo *Lista;
  10.  
  11. }

pero no consigo adaptar esas funciones y que el programa no de fallo de segmentación a la forma en la que lo hago, si me puedes indicar que hago mal lo agradecería mucho.

Lo siento, solucionado, fue un descuido, si puedes responderme a lo otro, lo agradecería mucho  >:D Disculpa otra duda que tendría sería, si quiero leer todos los nodos de la lista, lo hago de esta forma en el codigo que me has pasado pero no me funciona correctamente, el bucle se ejecuta no leyendo todos los nodos almacenados y luego el programa se cierra automáticamente:
Código
  1. void leer_fic(){
  2. FILE *fp;
  3. tipoNodo *aux;
  4. while(!feof(fp)){
  5. fp = fopen("pacientes.txt","r+b");
  6.  
  7. fread(&aux,sizeof(tipoNodo),1,fp);
  8.  
  9. puts("LECTURA!");
  10. printf("DNI:%d\n",aux->dni);
  11. printf("FECHA:%d\n",aux->fecha);
  12. puts("FIN DE LECTURA");
  13. aux = aux->siguiente;
  14. }
  15. fclose (fp);
  16. }


Un saludo y gracias de nuevo.

40  Programación / Programación C/C++ / Re: Problema para pasar una lista a fichero con Fwrite en: 18 Febrero 2011, 14:10 pm
Disculpa, me olvide de decir que efectivamente si reservo memoria para la lista almacenada en el fichero a la hora de leer.
Ya que la lectura la hago desde otro programa, en el que tengo una estructura exactamente igual a la estructura del primero (programa que graba la lista en el fichero).
Páginas: 1 2 3 [4] 5 6 7 8 9
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines