Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C]Problema stack

  1. #1

    [C]Problema stack

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include "stack.h"
    
    int main(int argc, char * argv[])
    {
       Stack * s = Create(); 
       int i = 0;
       while(i != 10)
       {
          push(s, i);
          i++;
       }
       i = 0;
       int x[10];
       while(i != 10)
       {
          pop(s, &x[i]);
          i++;
       }
       i = 0;
       for(i = 0; i < 10; i++)
          printf("Pop => %d \n", x[i]);
       char sc;
       scanf("%s", &sc);
       return 0;
    }
    
    #include <malloc.h>
    
    typedef struct
    {
    	int vet[11];
    	int sp;
    }Stack;
    
    Stack * Create()
    {
    	Stack * v = malloc(sizeof(Stack));
    	v->sp = 0;
    	return v;
    }
    
    void push(Stack * p, int value)
    {
    	p->vet[p->sp++] = value;
    }
    
    void pop(Stack * p, int * value)
    {
    	if(p->sp == 0)
    		return;	
    	value = (int *) p->vet[p->sp--];
    }
    Mi stampa numeri a caso
    Why????
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  2. #2
    Nel metodo pop prova a sostituire

    value = (int *) p->vet[p->sp--];

    con

    *value = (int *) p->vet[p->sp--];

    Se funziona, ti spiego il perche'.
    ciao ciao !!
    _______________
    home : cristianolongo.altervista.org
    e-mail : cristiano_longo@yahoo.it

  3. #3
    Scusa, rettifico

    *value = p->vet[p->sp--];
    ciao ciao !!
    _______________
    home : cristianolongo.altervista.org
    e-mail : cristiano_longo@yahoo.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.