Witam, mam zrobiony stos na globalnej tablicy wskaźników do znaków
#define MAX 100
char * in[MAX];
int stack_top = 0;
wstawiam do niej jakieś ciągi znaków oczywiście zakończone "\0",
gdy próbuje zaczytać funkcją ciąg znaków w pętli otrzymuję Invalid read of size 1 (funkcja value). Program niby działa ale niepokoi mnie ten błąd.
inline bool push(char *element)
{
if(stack_top>=MAX) return 0; //stack full
in[stack_top++] = element;
return 1;
}
inline int pop()
{
if(stack_top==0) return ERROR; //nothing to remove
--stack_top;
return 1; //udało się usunąć
}
inline bool empty()
{
if(stack_top==0) return 1; //stack is empty
return 0; // stack is not empty
}
inline unsigned int size()
{
return stack_top; // stack size
}
inline char* value()
{
if(empty()) return ""; //stack is empty
return in[stack_top-1];
}
dodam, że z tego stosu korzystają 2 wątki jeden podbija stos drugi czyta i zdejmuje ze stosu.