一个关于析构函数的问题!

fossil2000 2001-09-11 06:44:58
我用C++在PRIVATE中定义一个二级指针如:int **p可是,当我在析构函数中用delete p来回收堆时,总报告指针出错,是怎么回事?那位大虾明示?有分!
...全文
130 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
fossil2000 2001-09-13
  • 打赏
  • 举报
回复
不要回没用的贴,OK???
jyf7862 2001-09-12
  • 打赏
  • 举报
回复
delete[] p
cmpp 2001-09-12
  • 打赏
  • 举报
回复
我来学习一下!
cmpp 2001-09-12
  • 打赏
  • 举报
回复
我来学习一下!
cmpp 2001-09-12
  • 打赏
  • 举报
回复
我来学习一下!
tohigh 2001-09-12
  • 打赏
  • 举报
回复
gz
arxing 2001-09-12
  • 打赏
  • 举报
回复
最后一句也用delete []p
fossil2000 2001-09-12
  • 打赏
  • 举报
回复
to seeu(idle) 请问:p=new int*[size]这种形式真没见过!能解释一下,他的具体的含义吗?再就是,我在程序中用了*p=new int[I*J]申请了堆,程序中也可以用p[i][j]的形式,也不知道这两者有什么联系,或区别,谢谢,分是要加的,问题清楚之后再加
seeu 2001-09-11
  • 打赏
  • 举报
回复
我来吧!..
//test.h
class X{
int** p;
enum{size=100};
public:
X();
~X();
}

//test.cpp
X::X()
{
p = new int*[size];
for (int i=0; i<size; i++)
{
p[i] = new int[size];
for(int j=0; j<size; j++)
p[i][j] = 0;
}
}
X::~X()
{
for(int i=0; i<size; i++)
delete [] p[i];
delete p;
}

good lucky !!! 给点分吧!!!
Nepton 2001-09-11
  • 打赏
  • 举报
回复
能贴出程序么?
meilideme 2001-09-11
  • 打赏
  • 举报
回复
我看啊,你还是多看看书啊
sr388 2001-09-11
  • 打赏
  • 举报
回复
我觉得wyzegg(蛋)说得有道理,怎么分配就怎么删除。

p是一个指向指针的指针,而它所指向的指针又指向一个整数,如果你用:

p = new int ;

赋值的话,肯定就错了嘛
reinly 2001-09-11
  • 打赏
  • 举报
回复
一个相关的问题:
**p在内存中存储的问题,是不是有两个指针还是一个指针**p是复引用指针吗?
在申明的时候是不是应该写做*p=new a ...delete *p


指针问题??天哪
  • 打赏
  • 举报
回复
你不说清楚,大家怎么给你说的.
wyzegg 2001-09-11
  • 打赏
  • 举报
回复
主要看你怎么分配的,怎么分配就怎么DELETE
柯本 2001-09-11
  • 打赏
  • 举报
回复
构造函数中p是怎样赋值的?
p = new ?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧