Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/11/2010, 02:45
Fw190
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 5 meses
Puntos: 73
Respuesta: Error asignacion punteros ayuda urgente

Cuando declaras

struct Nodo *nuevo;

has declarado un puntero a Nodo, pero no has reservado memoria para esa estructura de datos. Por eso el programa casca, nuevo contendrá una dirección de memoria que apuntará a quién sabe dónde, y vete a saber lo que haces al asignar valores a los elementos de una estructura que aún no existe. Antes de utilizarla, debes reservar mempria para ella, algo así como:

Código C:
Ver original
  1. struct Nodo *Nuevo_nodo(void)
  2. {
  3.  struct Nodo *nuevo;
  4.  
  5.  nuevo = (struct Nodo *)malloc(sizeof(struct Nodo));
  6.  // Ahora puedes emplear los elementos de la estructura
  7.  nuevo->sigte = NULL;
  8.  nuevo->numero = 0;
  9.  return nuevo;
  10. }

Y no olvides liberar la memoria reservada con malloc (o con new, si utilizas C++) cuando dejes de necesitarla.