|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 关于数组超界问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1823
人关注过本帖
标题:
关于数组超界问题
取消只看楼主
加入收藏
小小程序猿
等 级:
小飞侠
威 望:
1
帖 子:755
专家分:2785
注 册:2013-7-18
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:30 回复次数:6
关于数组超界问题
#include<stdio.h>
int main()
{
int i;
int a[10];
for (i = 0; i <= 10; ++i)
知道错误在这,但是不知道为何结果是死循环
??????
{
a[i] = 0;
printf("%d\n", i);
}
return 0;
}
基础不是多好,希望大神讲细点,重点
在死循环啊,死循环,死循环
[
本帖最后由 小小程序猿 于 2013-8-12 19:19 编辑
]
2013-08-12 19:05
举报帖子
使用道具
赠送鲜花
小小程序猿
等 级:
小飞侠
威 望:
1
帖 子:755
专家分:2785
注 册:2013-7-18
第
2
楼
收藏
得分:0
我用的是
VC6.0,调试,显示是花屏,一直出现数字
孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-08-12 19:17
举报帖子
使用道具
赠送鲜花
小小程序猿
等 级:
小飞侠
威 望:
1
帖 子:755
专家分:2785
注 册:2013-7-18
第
3
楼
收藏
得分:0
以下是引用
wp231957
在2013-8-12 19:08:03的发言:
0-10 是11个元素啊
就是因为超界了,才出的错,知道有错,但是不理解为何如此
孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-08-12 19:17
举报帖子
使用道具
赠送鲜花
小小程序猿
等 级:
小飞侠
威 望:
1
帖 子:755
专家分:2785
注 册:2013-7-18
第
4
楼
收藏
得分:0
以下是引用
丶弱水彡千
在2013-8-12 19:17:35的发言:
只有40个字节
你用了44个
这就死循环??????????
孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-08-12 19:18
举报帖子
使用道具
赠送鲜花
小小程序猿
等 级:
小飞侠
威 望:
1
帖 子:755
专家分:2785
注 册:2013-7-18
第
5
楼
收藏
得分:0
以下是引用
liufashuai
在2013-8-12 19:22:09的发言:
就是临时变量在栈上分配,而且栈的分配地址是从下到上的!
临时变量在栈上分配是什么意思????都是哪种变量是在栈上分配的???哪些是在堆上分配的??????
孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-08-12 20:13
举报帖子
使用道具
赠送鲜花
小小程序猿
等 级:
小飞侠
威 望:
1
帖 子:755
专家分:2785
注 册:2013-7-18
第
6
楼
收藏
得分:0
以下是引用
TonyDeng
在2013-8-12 23:58:13的发言:
确保代码不越界才是正路。越界之后出现的现象,你找到相应的解释,又能利用它来干什么?难道想利用这种副作用?何况副作用总是会被消除的,效应并不确定,刻意利用这些东西,是邪门歪道。学IT到这份上,唉~
只是突然遇到,感觉很奇怪,不搞明白总是不甘心啊
孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-08-13 06:11
举报帖子
使用道具
赠送鲜花
小小程序猿
等 级:
小飞侠
威 望:
1
帖 子:755
专家分:2785
注 册:2013-7-18
第
7
楼
收藏
得分:0
以下是引用
TonyDeng
在2013-8-13 00:33:31的发言:
在栈上的变量,必然是连续分配的,再加上向上或向下增长,这只是一种实现假定,尽管某些编译器确实是这样做的,但并不是所有编译器都会这样做,因为标准也没规定编译器必须这样分配变量,那是编译器的自由,编译器可能会察觉这样的漏洞,采取预防措施,那些措施未必是我们所知道的(比如跳过一些间隙分配,踏入间隙读写即触发系统保护机制,谁知道编译器设计者会怎么做),也不需要知道,只要规规矩矩地写出不越界的代码即可,越界之后有什么现象,与你无关,研究它不见得你是高手。
程序员最忌的就是假定太多,假定这假定那,一到现实不满足那么多假定,这程序就越容易崩溃和不切实用。假定调用者不出错就是一个隐患很大的假定,现实中指望别人不出错,把正确的东西交给你处理,那也太容易做人了。这种思维不纠正,苦头有得你吃。任何程序的编写都有这样那样的假定,但自己必须很清醒地知道到底作了哪些假定,并充分论证过这些假定是无害和适用的,才能在这些假定的基础上写程序,一旦忘记了这些假定前提,写出来的程序就会有千奇百怪的运行时问题,那才是程序员最头痛的东西,程序员一辈子都在跟这些错误打交道,一个不给自己的产品包终身的厂家,如何在市场上立足,真以为程序员很风光么,那样的生涯闷死你。
这个其实也正犯了编程规范中不要给内存照X光片的戒条,试图解析内存的细节,殊不知不全然是那样的,个别适用的模型并不普遍,那样的经验有什么用呢。
好了斑竹,不研究了,多谢
孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-08-13 06:37
举报帖子
使用道具
赠送鲜花
7
1/1页
1
快速回复:
关于数组超界问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.035227 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved