Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 10-04-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Claro, gets(t), utiliza t como un buffer, como lo has definido como char* t = "dentro"; apunta a la cadena dentro, de 6 caracteres. Aquí vas a guardar las cadenas que introduzcas por el teclado. Si te pasas de caracteres... ERROR en tiempo de ejecución. Por otro lado, siempre apunta a la última cadena.

Prueba esto y te darás cuenta:

Código:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

typedef struct _nodo{
        char *url;
        int n;
        struct _nodo *siguiente;
        }TipoNodo;

typedef TipoNodo *pNodo;
typedef TipoNodo *Pila;

void Push(Pila *l,char *web);
char* Pop(Pila *l);

int main(){
  Pila pila= NULL;
  char t[256]; // buffer de 255 caracteres + /0

do{
  printf("Introduzca la pagina web a visitar\n");
  gets(t);
  // t siempre apunta al buffer, por lo que siempre apilas un puntero que apunta al buffer que es la última cadena... 
  Push(&pila,t);  
} while(strcmp(t,"salir"));  // "salir" también ha sido apilada, por lo que es la última cadena y la UNICA que printf puede ver...

while(pila->siguiente!=NULL){
  Pop(&pila);
  printf("%d %s\n",pila->n, pila->url);
}


  printf("Final presione una tecla para continuar...");
  getch();
  return 0;  
    }

void Push(Pila *pila,char *web){
  pNodo nuevo;
  nuevo= (pNodo)malloc(sizeof(TipoNodo));
  if(*pila==0) nuevo->n=0;
  else nuevo->n=(*pila)->n+1;
  nuevo->url= web;
  nuevo->siguiente= *pila;
  *pila=nuevo;
}

char* Pop(Pila *pila){
      pNodo nodo;
      char *val;
      nodo=*pila;
      if(!nodo) return "Vacio";
      *pila= nodo->siguiente;
      val=nodo->url;
      free(nodo);
      return val;
}
Saludos.

Última edición por escafandra fecha: 10-04-2008 a las 19:17:32.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Estructura de un CD david duarte Varios 4 27-10-2005 17:48:50
Actualizar estructura Garada Firebird e Interbase 2 15-10-2004 08:34:40
estructura de una tabla Salomon Firebird e Interbase 3 14-05-2004 15:26:46
Averiguar estructura de frm brandolin MySQL 0 20-10-2003 22:23:57
Imprimir Estructura agora18 Conexión con bases de datos 3 07-10-2003 19:19:22


La franja horaria es GMT +2. Ahora son las 21:29:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi