在不知道数组大小情况下,如何删除动态创建的二维数组

shinefen 2009-10-12 10:34:48
我需要完全删除它申请的空间

但是不知道它的大小
只知道是二维

有什么最简单方法.

int ** abc;
....


...全文
362 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinshisike 2009-10-17
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 mars_man 的回复:]
信息不全肯定没法了,因为不知道是如何创建的。

即使知道前面那一维是多少,比如知道是 int[6][]类型的,
这也不能保证你能正确删除,因为这还是依赖于它的创建方法。

但如果是离散的几个int[]的话,对每一个使用delete[]就OK了。
[/Quote]

这个考虑的更全面.
yinshisike 2009-10-17
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 cplusplusleon 的回复:]
用sizeof语句计算出第一维的大小n .大约是用sizeof(p)/sizeof(p[0])
然后用for(int i=0;i <n;i++)
    delete [] p;

不知是否可行
[/Quote]

不可行,对未知的操作,结果都是未知的.
yinshisike 2009-10-17
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 sandrer 的回复:]
malloc.h -> _msize()
[/Quote]

理论上可以,实际应用起来难度太大,未知的东西太多了.
zhaofengbadboy 2009-10-17
  • 打赏
  • 举报
回复
貌似不可以吧。。。
mars_man 2009-10-17
  • 打赏
  • 举报
回复
信息不全肯定没法了,因为不知道是如何创建的。

即使知道前面那一维是多少,比如知道是 int[6][]类型的,
这也不能保证你能正确删除,因为这还是依赖于它的创建方法。

但如果是离散的几个int[]的话,对每一个使用delete[]就OK了。
cphj 2009-10-15
  • 打赏
  • 举报
回复
对,指针只是一个带有类型信息的地址,再没有任何其他的信息了
sunm42000 2009-10-15
  • 打赏
  • 举报
回复
去找申请这块内存的人,然后教育他。。。。。。
cx1014 2009-10-15
  • 打赏
  • 举报
回复
最近刚学到,学习学习
Sandrer 2009-10-15
  • 打赏
  • 举报
回复
malloc.h -> _msize()
彭辛乾 2009-10-15
  • 打赏
  • 举报
回复
DELETE
失落的凡凡 2009-10-14
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 shinefen 的回复:]
都是我自己申请的内存..
是可以记录原数组范围....

就是想按题目的意思问下,有没有解决方法而已
[/Quote]

没有的……它们都是普通指针……没有保存关于它们指向那么个地址之外的任何信息。
shinefen 2009-10-14
  • 打赏
  • 举报
回复
欢迎讨论~呵呵




或者用什么auto智能指针之类..?
shinefen 2009-10-14
  • 打赏
  • 举报
回复
都是我自己申请的内存..
是可以记录原数组范围....

就是想按题目的意思问下,有没有解决方法而已
ameigame 2009-10-13
  • 打赏
  • 举报
回复
谁申请谁删除,不可能有别人申请了你来删除吧
24K純帥 2009-10-13
  • 打赏
  • 举报
回复
是delete[] abc
lzx258 2009-10-13
  • 打赏
  • 举报
回复
mark
  • 打赏
  • 举报
回复
如果不知道数组里面的指针元素个数,你是做不到的。



http://blog.csdn.net/jia_xiaoxin/archive/2008/11/10/3268645.aspx
cphj 2009-10-13
  • 打赏
  • 举报
回复
C语言这样也是没有释放干净
cplusplusleon 2009-10-13
  • 打赏
  • 举报
回复
用sizeof语句计算出第一维的大小n .大约是用sizeof(p)/sizeof(p[0])
然后用for(int i=0;i<n;i++)
delete [] p;

不知是否可行
whg01 2009-10-13
  • 打赏
  • 举报
回复
不知道如何申请,那么就不能安全的释放。
让申请内存的模块提供一个释放的函数。
加载更多回复(10)

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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