[C con Clase] Pila dinámica: guardar datos.

Gustavo Adolfo Torres Ortega gusgura en hotmail.com
Vie Feb 26 03:53:28 CET 2010


Hola, que tal.

Estoy estudiando sobre estructuras de datos, y me pidieron que guardara datos en una pila dinámica.
El problema es que no sé si estoy declarando funciones y valores como debería, ya que cuando compilo mi programa con NetBeans, me aparece un error que dice lo siguiente:

Error while dumping state (Probably corrupted stack).

¿En qué está mal mi código?


#include <stdio.h>
#include <stdlib.h>

struct Pila
{
  char dato;
  struct Pila *base;
};

typedef struct Pila Pila;

int push(Pila *a, char d);
char pop (Pila *a);
int empty(Pila *a);

int main()
{
  Pila *a;
  a=NULL;
  char d='a';
  if(push(&a,d))                   //Por el momento solo guardo un solo valor.
    printf("\nValor guardado: %c",a->dato);
  else
    printf("\nValor no guardado\n");
  printf("\n\n\t");
  return 0;
}

int push(Pila *a, char d)
{
  Pila *aux;
  aux=(Pila*)malloc(sizeof(Pila));
  if(aux!=NULL)
  {
    aux->dato=d;
    aux->base=a;
    a->base=aux;
    return 1;
  }
  return 0;
}

char pop (Pila *a)
{
  char d=a->dato;
  Pila *aux;
  aux=(Pila*)malloc(sizeof(Pila));
  aux=a->base;
  free(a);
  a->base=aux;
  return d;
}

int empty(Pila *a)
{
  if(a==NULL)
    return 1;
  return 0;
}
 		 	   		  
_________________________________________________________________
Prefiero un día sin coche que sin Messenger
www.vivirmessenger.com
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100225/a66048bb/attachment.html>


Más información sobre la lista de distribución Cconclase