我想在我的应用程序中创建一个全局堆栈,并将某些对象放在这个堆栈上。这些对象不是固定大小的。
我目前有;
static char contextStack[CONTEXT_MAX_SIZE];
static char *top = &contextStack[0];
我重写了new
继承的基类的运算符
static void *operator new(size_t size) {
void *Result;
Result = top;
top = top + size;
return Result;
};
问题是我将如何实现delete
运算符以将其从堆栈中弹出?它没有告诉我物品有多大?我是否必须将每个条目的大小存储在数组中?
(ps) 最后创建的总是最先被删除的。并符合堆栈。