VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 354|回复: 3

[已解决]使用delete释放内存报错

[复制链接]
13_avatar_middle
最佳答案
0 
在线会员 发表于 2022-1-21 14:55:58 | 显示全部楼层 |阅读模式
先上代码:
  1. int* p = new int[10];
  2.         for (int idx = 0; idx < 10; idx++)
  3.         {
  4.                 p[idx] = idx;
  5.         }
  6.         for (int idx = 0; idx < 10; idx++)
  7.         {
  8.                 cout << p[idx] << endl;

  9.         }
  10.         p++;

  11.         delete[] p;
复制代码


这里用delete释放内存就会报错,把p++删掉就不报错了,有没有什么方法不删掉p++也能释放掉p的内存?
最佳答案
46_avatar_small
2022-1-21 15:10:37
p++后,delete[] p 是从第二个元素开始删除吗?数组没有释放干净?




上一篇:我想闻着两个有什么区别?
下一篇:各位老师,请问我这个错在那里,没有任何返回值,
46_avatar_middle
最佳答案
4 
在线会员 发表于 2022-1-21 15:10:37 | 显示全部楼层    本楼为最佳答案   
bestAnswer
p++后,delete[] p 是从第二个元素开始删除吗?数组没有释放干净?
13_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-1-21 16:11:37 | 显示全部楼层
CIA 发表于 2022-1-21 15:10
p++后,delete[] p 是从第二个元素开始删除吗?数组没有释放干净?

感谢,我知道怎么回事了
46_avatar_middle
最佳答案
4 
在线会员 发表于 2022-1-22 17:18:54 | 显示全部楼层
Maker0619 发表于 2022-1-21 16:11
感谢,我知道怎么回事了

忘了说了,数组名是一个指针常量,固定指向数组的第一个元素。
你不可以修改它的值:p++是不可以的,给p赋新值也是不可以的
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2022-5-18 17:04

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表