Dev - C++ - Programa dejó de funcionar

 
Vista:

Programa dejó de funcionar

Publicado por migue81 (2 intervenciones) el 10/02/2016 17:47:11
Hola, tengo esta estructura para almacenar contactos de agenda, al intentar llenar los campos de un nuevo contacto me da el error "El programa dejó de funcionar correctamente por un problema" sin dar más detalles. El error siempre ocurre inmediatamente despues de pasarle el tercer dato (primer apellido). ¿Alguien sabe qué ocurre?...gracias de antemano

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
typedef struct Contacto {
  char *primer_nombre;
  char *segundo_nombre;
  char *primer_apellido;
  char *segundo_apellido;
  struct Telefono *telefonos;
  struct Email *emails;
  struct Grupo *grupos;
  struct Otros *otros;
 
  struct Contacto *anterior;
  struct Contacto *siguiente;
};
 
Contacto *nuevo_contacto(){
   return ((Contacto*) malloc(sizeof(Contacto)));
}
 
int main(int argc, char *argv[])
{
 
	Contacto *nuevo;
	nuevo=nuevo_contacto();
 
	printf("Primer nombre: ");
	scanf("%s",nuevo->primer_nombre);
 
	printf("Segundo nombre: ");
	scanf("%s",nuevo->segundo_nombre);
 
	printf("Primer apellido: ");
	scanf("%s",nuevo->primer_apellido);
 
	printf("Segundo apellido: ");
	scanf("%s",nuevo->segundo_apellido);
 
	free(nuevo);
	system("PAUSE");
	return EXIT_SUCCESS;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa dejó de funcionar

Publicado por agustin (522 intervenciones) el 10/02/2016 21:17:30
Normal que te falle ya que todos los miembros de la estructura son punteros a tipos y como tal contendrán la dirección hacia ellos pero en ningún momento asignas memoria para los datos a almacenar. Haz una prueba, cuando te pida el nombre me tele 50 aes y ya me contaras. El caso es que un puntero es un dword que contiene una dirección y tu no los inicias con lo que puede apuntar a dios sabe donde.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Programa dejó de funcionar

Publicado por migue81 (2 intervenciones) el 11/02/2016 06:22:06
Hola agustin, muchas gracias por tu respuesta. La verdad es que no he podido resolver el problema, podrías mostrarme un fragmento de código donde pueda ver cómo lo harías?...te agradecería mucho
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa dejó de funcionar

Publicado por agustin (522 intervenciones) el 11/02/2016 07:52:59
1
2
3
4
5
6
7
8
9
10
11
12
13
typedef struct Contacto {
  char primer_nombre[50];
  char segundo_nombre[50];
  char primer_apellido[50];
  char segundo_apellido[50];
  struct Telefono *telefonos;
  struct Email *emails;
  struct Grupo *grupos;
  struct Otros *otros;
 
  struct Contacto *anterior;
  struct Contacto *siguiente;
};
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar