c++ new delete

xxhhwt 2011-04-27 02:23:34
如下:
char *pStr = new char[10];

随后,使用delete[] pStr;来释放内存,
问题是,使用delete[]来释放内存的时候,系统是如何得知pStr所指向的内存的长度的呢?
...全文
70 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
碎炎 2011-04-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xxhhwt 的回复:]
引用 4 楼 sryan 的回复:

假如写了句pStr++ 删的内存会不会有问题?

报错了...
[/Quote]
我用vc2010编译器也报错了 看来以后不能修改new返回的指针了
子达如何 2011-04-27
  • 打赏
  • 举报
回复
我听说有些实现是这样的:
在返回给你的内存的前一个机器字那里保存了长度。纯属很久远的知识了,现在的实现估计已经很不同了。
xxhhwt 2011-04-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sryan 的回复:]

假如写了句pStr++ 删的内存会不会有问题?
[/Quote]
报错了...
碎炎 2011-04-27
  • 打赏
  • 举报
回复
假如写了句pStr++ 删的内存会不会有问题?
taodm 2011-04-27
  • 打赏
  • 举报
回复
你去小店买东西,没价格标签,老板怎么知道它的价格的?
pathuang68 2011-04-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luciferisnotsatan 的回复:]

系统有地方记录分配的内存长度的
[/Quote]

++
这个楼主不用操心,系统帮你做这事。你要做的就是加上[]就OK
luciferisnotsatan 2011-04-27
  • 打赏
  • 举报
回复
系统有地方记录分配的内存长度的

65,210

社区成员

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

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