读书人

delete 是为何报错

发布时间: 2012-09-09 09:27:54 作者: rapoo

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;
}

[解决办法]
data是new出来的,p没有new出来,
所以只能delete []data,不能[]p
[解决办法]
delete p;为什么要写成[]p呢
[解决办法]
应该是删除p的 可能是你代码别的地方导致的

读书人网 >C++

热点推荐