社区
C++ 语言
帖子详情
c++ new delete
xxhhwt
2011-04-27 02:23:34
如下:
char *pStr = new char[10];
随后,使用delete[] pStr;来释放内存,
问题是,使用delete[]来释放内存的时候,系统是如何得知pStr所指向的内存的长度的呢?
...全文
70
7
打赏
收藏
c++ new delete
如下: char *pStr = new char[10]; 随后,使用delete[] pStr;来释放内存, 问题是,使用delete[]来释放内存的时候,系统是如何得知pStr所指向的内存的长度的呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
系统有地方记录分配的内存长度的
C++
new
&
delete
C++
new
delete
底层实现探索
C++
new
和
delete
详解
C++
new
和
delete
详解
C++
new
和
delete
的使用
new
和
delete
是
C++
里非常重要的两个关键字,意味着从“自由存储(堆)”分配指定大小的内存和释放掉这些内存。这些用法哪怕初学者也会,但是今天要讲的不是这个。今天要讲的是使用中容易忽视的细节和可能引发的错误...
C++
new
/
delete
重载
如果重载的是成员函数,责operator ...通过分析上面的工作过程,可以看到
new
和
delete
实际并不等同于operator
new
() 和operator
delete
(),
new
和
delete
做的事情要更多,实际上我们不能重定义
new
和
delete
表达式的行为。
C++
new
与
delete
函数
int main()//
new
/
delete
和 malloc/free最大区别是
new
/
delete
对于【自定义类型】除了开空间还会调用构造函数和析构函数free(p1);
delete
p2;// 内置类型是几乎是一样的// Cfree(p3);
delete
p4;free(p5);return 0;
C++ 语言
65,210
社区成员
250,518
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章