[C] stak con array

di il
1 risposte

[C] stak con array

Salve a tutti, ho implementato questo stack con array (ho bisogno di farlo cosi). Solo che succede una cosa davvero strana...eppure non ho bevuto quindi non mi posso sbagliare, ma se lo richiamo dal main, va bene, se lo richiamo da un altra funzione sembra che perde il valore di inizializzazione, oppure che mi da errore di segmentazione.. dipene dai casi..a volte compilo e mi da il primo errore, ricompilo subito e mi da il secondo!!! ma è ubriaco???....vi posto lo stack di array forse c'è qualche errore...

ah su linux succede tutto questo, su windows mi va in crash direttamente!
grazie


questo è il contenuto del file.h
#include <stdio.h>
#include <stdlib.h>
#define MAX  1000
#define EMPTY -1
#define FULL  (MAX - 1)

typedef struct stack{
	char *s[MAX];
	int top;
} stack;
#define MAX  1000
#define EMPTY -1
#define FULL  (MAX - 1)

void reset(stack *stk)
{
	stk -> top = -1;
}
void push(char *string, stack *stk)
{
	int TOP;
	stk -> top = stk -> top +1;             
	TOP = stk -> top;                      
	stk -> s[TOP] = (char *)calloc(8, sizeof(char)); 
	strcpy(stk -> s[TOP], string);          
}
char *pop(stack *stk)
{
	int TOP;
	TOP = stk -> top;
	stk -> top = stk -> top -1;    
	return (stk -> s[TOP]);        	
}
/*restituisce l'elemento al top*/
char *top(stack *stk)
{
	return (stk -> s[stk -> top]);
}
/*restituisce il valore corrente di top*/
int top_val(stack *stk)
{
	return (stk-> top);	
}
int empty(stack *stk)
{
	return (stk -> top == EMPTY);
}
int full(stack *stk)
{
	/*restituisce 1 se è pieno*/
	return (stk -> top == FULL);
}

1 Risposte

  • Re: [C] stak con array

    Ragazzi scusatemi, ma sono priprio un IDIOTA!!! eh si...dichiaravo lo stack in questo modo:

    stack *stk;

    e usavo stk da subito cosi:

    reset(&stk);

    passando un puntatore a stack...senza avere la struttura vera e proprio!!! mamma mia. eppure il C lo conosco ma faccio ancora questi errori del c***o!!!!
Devi accedere o registrarti per scrivere nel forum
1 risposte