void指针数组

时间:2013-02-28 16:39:39

标签: c++

我试图用strtok分解字符串然后进入堆栈。可能是整数或' +'或者' - '迹象。我已经将问题追溯到push函数,而void ** a是一个指向数组的void指针。

当我执行cout << getVP(a) << " " ;

时打印出垃圾值

我的getVP功能

int Stack::getVP (void* a) const
{
return *(static_cast <char *>(a));
}

请不要问我为什么不使用std::Stack。我没有责任这样做,是的,我必须在阵列中做到这一点。

编辑:对我的代码进行了一些更改,现在当我将它存储在void * temp中时,它没有打印出正确的输入。任何人吗?

1 个答案:

答案 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
   }

}