我试图用strtok分解字符串然后进入堆栈。可能是整数或' +'或者' - '迹象。我已经将问题追溯到push函数,而void ** a是一个指向数组的void指针。
当我执行cout << getVP(a) << " " ;
我的getVP功能
int Stack::getVP (void* a) const
{
return *(static_cast <char *>(a));
}
请不要问我为什么不使用std::Stack
。我没有责任这样做,是的,我必须在阵列中做到这一点。
编辑:对我的代码进行了一些更改,现在当我将它存储在void * temp中时,它没有打印出正确的输入。任何人吗?
答案 0 :(得分:0)
您的代码到处都是:
此代码不正确 - 评论是更正/注释:
void Stack::push (char* temp)
{
a = new void * [MAX]; // Assume a is a member variable of type 'void **' it will
// be a memory leak for starters. Why not make a an array
// or char *. i.e.
// char *a[MAX];
// or better string string a[MAX];
if (!isFull())
{
top = top + 1;
*a = temp; // This is incorrect - should be a[top] = temp;
// Possibly want to duplicate temp here
cout << getVP(a) << " " ; // Why make this complicated function
// Just cout << a[lop] << endl; would do
++a; // Not needs and confuses things
}
}