越界操作new分配空间的问题

kongrenxin 2011-04-15 07:29:36
我写了个小程序,对new分配的字符数组进行越界操作,为什么不报错误?

int main()
{
char *p = new char[2];
p[3] = 'W';
printf("p[3]:%c\n",p[3]);
memset(p,0,20);
memcpy(p,"hello world",12);
printf("%s\n",p);
delete p;
p = NULL;
return 0;
}
...全文
134 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
书虫 2011-04-15
  • 打赏
  • 举报
回复
越界没有出现死机蓝屏,是因为你越界写入的内存可能还没有被申请使用,如果内核用到那块内存,就死顶了,O(∩_∩)O哈哈~
luciferisnotsatan 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 pathuang68 的回复:]

越界检查是程序员自己的事情,编译器不管滴
[/Quote]
正解
pathuang68 2011-04-15
  • 打赏
  • 举报
回复
越界检查是程序员自己的事情,编译器不管滴
luohaohahaha 2011-04-15
  • 打赏
  • 举报
回复
建议lz去搜搜以前的帖子,有这方面的回答。
机智的呆呆 2011-04-15
  • 打赏
  • 举报
回复
编译器不对越界进行检查,对于c/c++来说这是程序员的责任~~~
当操作系统忍无可忍的时候,操作系统会报错的

64,641

社区成员

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

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