我在這裏有一個小問題。每當我運行下面的代碼時,我的程序就會崩潰。程序崩潰數組索引分配
void Wingcod::push(byte b)
{
stack[stackp] = b;
stackp++;
if(stackp >= stacks)
{
stacks += 16;
try
{
realloc(stack,stacks);
}catch(bad_alloc*)
{
cerr << "STACK OVERFLOW";
exit(1);
}
}
}
和堆棧,stackp和堆棧的定義是這樣的:
stacks = 8;
stackp = 0;
stack = new byte[stacks];
和字節僅僅是一個unsigned char
。
你聲明瞭什麼類型的堆棧? – TJD 2012-01-31 20:37:18
您是否嘗試使用斷點進行調試並查看會發生什麼? – 2012-01-31 20:37:24
爲什麼不使用C++呢?你可以有一個方便的'std :: vector',它完全符合你的需求。 –
2012-01-31 20:39:13