我想寫我自己的堆棧的版本,這是我有:C++模板實例指針零誤差
template<class myStackType> class myStackClass
{
myStackType array[1000];
int size;
public:
myStackClass()
{
size = 0;
}
void pop()
{
size--;
}
void push(myStackType a)
{
array[size] = a;
size++;
}
myStackType top()
{
return array[size-1];
}
bool empty()
{
return(size == 0);
}
};
,但是當我嘗試實際使用它
struct grade
{
int mid;
int final;
string name;
grade(int mid1 = 0, int final1 = 0, string name1 = 0)
{
mid = mid1;
final = final1;
name = name1;
}
};
myStackClass<grade> myStack;
我得到一個調試斷言失敗:無效空指針
另一方面,std ::堆棧在相同數據類型的同一個地方工作得很好
我做錯了什麼?
謝謝!
如果我沒有錯,隨着用戶插入越來越多,堆棧增長。你爲什麼讓它有最多1000個元素? – Davlog