首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

对分配的空间大小为什么不严格管理?该怎么处理

2012-04-14 
对分配的空间大小为什么不严格管理?C/C++ code#includecstdio#includeiostreamvoid main(){int* p (

对分配的空间大小为什么不严格管理?

C/C++ code
#include<cstdio>#include<iostream>void main(){    int* p = (int*)malloc(10*sizeof(int));    p[11] = 1;    int* p2 = new int[10];    p2[11] = 1;    int p3[10];    p3[11] = 1;    system("pause");}

按理说三个都越界了啊,为什么不报错?

[解决办法]
比较高级的语言会,c要兼顾速度
[解决办法]
探讨
C/C++ code

#include<cstdio>
#include<iostream>

void main()
{
int* p = (int*)malloc(10*sizeof(int));
p[11] = 1;
int* p2 = new int[10];
p2[11] = 1;
int p3[10];
p3[11] = 1;
……

[解决办法]
这种错误应该是由程序员自己来避免的而不是依赖语言机制
[解决办法]
为了达到高效率,C语言必须放弃一些可以避免的错误检测机制吧。你说你越界看不出来么?
[解决办法]
越界只是修改了未知地址的值,不能保证出错

热点排行