delete 是为什么报错
class Stack
{
public:
Stack(int s = 2):size(s),top(0)
{
data = new int(size);
}
void push(int val);
void pop();
bool isEmpty();
bool isFull();
void show();
private:
int size;
int top;
int *data;
};
void Stack::push(int val)
{
if(!isFull())
{
data[top++] = val;
}
else
{
int *p = data;
data = new int[2* size];
for(int i =0 ; i < size; ++i)
data[i] = p[i];
// delete []p; 为什么这里用delete会出错
size = 2*size;
data[top++] = val;
}