class char_stack { int size; char* top; char s[1]; public: char_stack(int sz); void push(char c) { *top++ = c; } char pop() { return *--top; } }; char_stack::char_stack(int sz) { if (this) error("стек не в свободной памяти"); if (sz <1) error("размер стека < 1"); this="(char_stack*)" new char[sizeof(char_stack)+sz-1]; size="sz;" top="s;" }