| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2225 人关注过本帖
标题:为什么没报错 数组越界的时候
只看楼主 加入收藏
coderlee
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-4-29
收藏
 问题点数:0 回复次数:8 
为什么没报错 数组越界的时候
int _tmain(int argc, _TCHAR* argv[])
{
    char* str = new char[2];
    cin >> str; //input 4 char
    cout << str;

    return 0;
}

我只给str了2个char的空间 却能输入4个char 为什么呢
搜索更多相关主题的帖子: 越界 
2008-01-21 11:05
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
你没异常捕获是不报错滴~~~要不然编程的时候就不用去注意越界了~

樱花大战,  有爱.
2008-01-21 11:13
忘记喧嚣
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-10-7
收藏
得分:0 
char* str = new char[2];

老大这个是动态分配数组....你定义了2个大小只是开始的情况

new会在内存开辟一块内存用与存储你的数组...不相信你加 求你这个数组

现在的大小 得到的肯定是4 或者输出看是多少.
2008-01-21 12:59
linsua
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2008-1-2
收藏
得分:0 
你们俩的头像是样的,哪里来的?

如果你对我的话感到再明白不过 那恐怕你是误解了我的意思
2008-01-21 13:02
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
原帖由 [bold][underline]忘记喧嚣[/underline][/bold] 于 2008-1-21 12:59 发表 [url=http://bbs.bccn.net/redirect.php?goto=findpost&pid=1185052&ptid=198170][/url]
char* str = new char[2];

老大这个是动态分配数组....你定义了2个大小只是开始的情况

new会在内存开辟一块内存用与存储你的数组...不相信你加 求你这个数组

现在的大小 得到的肯定是4 或者输出看是多少. ...

误人子弟
2008-01-21 15:23
dhj1985
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-25
收藏
得分:0 
程序在编译时只有 程序中的语法和词法出错才会报错
数组越界 只会在代码生成的时候会报错
2008-03-18 09:43
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
在java里面不捕捉也会送到控制台..c++是要捕捉错误才可以的

学习需要安静。。海盗要重新来过。。
2008-03-18 15:55
小烟
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-3-18
收藏
得分:0 
数组编程设定了个数,哈哈
2008-03-18 18:33
baoyibao
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-3-13
收藏
得分:0 
char *str = new char[2];
只是使char指针str指向一个2字节的内存空间,但是不代表它不能指向另外的内存空间,因为它只是一个char指针,没有别的限制。所以,不论输入多少字符都可以正确地显示。
2008-03-18 22:46
快速回复:为什么没报错 数组越界的时候
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036491 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved