社区
C语言
帖子详情
一个死循环
gyyggyy
2003-08-29 08:01:45
#include "stdio.h"
void main()
{
int *p,a[10],i;
p=&i;
for (i=0;i<=10;i++)
{
a[i]=0;
printf("%d ",a[i]);
}
}
如果把p=&i;这句删除,该程序就不是死循环了。不删除这句就是死循环,不知是为什么。(我本意就是想些个死循环)。
...全文
105
19
打赏
收藏
一个死循环
#include "stdio.h" void main() { int *p,a[10],i; p=&i; for (i=0;i<=10;i++) { a[i]=0; printf("%d ",a[i]); } } 如果把p=&i;这句删除,该程序就不是死循环了。不删除这句就是死循环,不知是为什么。(我本意就是想些个死循环)。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hangdian
2003-09-14
打赏
举报
回复
我这是什么,我用的VC++6.0没什么问题
ggg82
2003-09-14
打赏
举报
回复
越界错
playboyxp
2003-09-14
打赏
举报
回复
#include "stdio.h"
void main()
{
int *p,a[10],i;
p=&i;
for (i=0;i<=9;i++)
{
a[i]=0;
printf("%d ",a[i]);
}
}
l1ul1u
2003-09-14
打赏
举报
回复
这和编译器有关
金笛子
2003-09-14
打赏
举报
回复
更正一点:计算机不判断数组越界是不对的我的原意是说:c和c++不判断数组越界
学糊涂了还是听听大家的建议吧
金笛子
2003-08-30
打赏
举报
回复
看了大家的高见,我想到一个问题。计算机它是不判断数组越界,这需要编程者自行注意。不知是否是这样的。楼主的愿望是想写个是循环,而在不同的编译器上去有不同的显示。我想这还不是楼主真正想要的吧。我觉得应该写一个在任何编译器上都能够构成死循环的这实质上就是软件开发的一个开发思想--软件的可移植性。这是我个人的观点还是听听大家的建议吧
chanet
2003-08-30
打赏
举报
回复
:( ... 什么工具??
ringphone
2003-08-29
打赏
举报
回复
多一句或少一句无关紧要的语句会造成程序崩溃或本该崩溃却继续存活往往发生在有内存操作错误的代码附近,我发现好几次明明该造成程序崩溃的地方,比如数组越界等,在之后或函数返回处加个MessageBox能延缓程序的崩溃甚至不崩溃。可能是你加的代码,分配的内存正好接续到数组尾部,越界到加入的内存,因此能暂时没事。
bluedustqq
2003-08-29
打赏
举报
回复
数组越界之后软件就失去了原来的辨识功能,多一句与少一句已经不能用编程思想解释~~~
oopig
2003-08-29
打赏
举报
回复
你debug看看那些变量的内存布局就知道了
gyyggyy
2003-08-29
打赏
举报
回复
谢谢各位,我用的是TC2。0
我就是要他数组越界造成死循环,照道理,i的地址应该是a[10]的地址,所以有没有p=&i;这句都应该是没有关系的,可是为什么有了这句就会死循环,而没有这句就不会发生死循环啊?
BAYERN
2003-08-29
打赏
举报
回复
俺用devc++运行,没有出现死循环,连报警都没有,将i<=17时运行时会产生错误。
8712224
2003-08-29
打赏
举报
回复
我觉得fengfeng2003说的很对啊。数组越界。不过我还没去在TC下运行,去是是就知道了
Jinhao
2003-08-29
打赏
举报
回复
Dev-C++编译后也没有问题,你是用的tc吗?
oopig
2003-08-29
打赏
举报
回复
在vc6中,int *p,a[10],i;这几个变量的内存地址是从大到小的连续空间。
所以a[10] = 0这个语句改变的是p的值,即把p置空。
但是从楼主描述的现象看,应该是a[10] = 0把i置空了。
所以我怀疑p=&i;这个语句影响了编译器对局部变量的空间部署,但是vc6没有这种情况。
所以问问楼主用的什么编译器。楼主自己debug看看内存布局也就知道了。
fengfeng2003
2003-08-29
打赏
举报
回复
vc6.0下运行,没有出现死循环
不过i<=10错了
因为数组有10个元素,从0到9,没有a[10]
oopig
2003-08-29
打赏
举报
回复
看错了。
你用的什么编译器?vc6我试了没有这个问题。
chengroad
2003-08-29
打赏
举报
回复
楼上说得有道理,可这与楼主说得删除p=&i;这句有什么关系呢。照楼主说得即使改了,是不是还有问题?
oopig
2003-08-29
打赏
举报
回复
>>for (i=0;i<=10;i++)
应该是for (i = 0; i < 10; i++)这样就可以了。
你给a[10]赋值的时候,内存越界了,实际上修改了i的值。
python
死循环
_Python for
死循环
循环循环是指重复执行一段代码若干次,为什么要有循环?因为循环可以避免大量的代码重复。
死循环
当
一个
循环可以执行无限次,也就是没有终止条件,我们称这个循环是
死循环
。编写
死循环
程序实际上是不对的,一旦写出来
一个
程序运行后发现是
死循环
,一定要立即终止程序的运行!用Python实现
一个
死循环
非常简单,while True就可以。for实现
死循环
步长为0然而我的标题是要求用Python的for实现
死循环
,首先...
c语言死循坏的作用,c语言什么是
死循环
在C语言程序中,语句“while(1)printf("*");”就是
一个
死循环
,运行它将无休止地打印*号。不存在一种算法,对任何
一个
程序及相应的输入数据,都可以判断是否会出现
死循环
。因此,任何编译系统都不做
死循环
检查。C语言
死循环
:在设计程序时,若遇到
死循环
,我们可以通过按下Ctrl+Pause/Break的方法,结束
死循环
。然而,在编程中
死循环
并不是
一个
需要避免的问题,相反,在实际应用中,经常需...
php如果执行
一个
死循环
及后台自动执行
前几天接到
一个
项目,需要做
一个
后台自动刷阅读量和点赞的数量。 刚接触php没多久。但是知道,
一个
死循环
是无法执行的。 百度了一会。主要用到一下几项技术。 sleep()函数;主要是让
死循环
得到休息,不至于崩溃。 set_time_limit(0);设置执行最长时间,0为无限制。 ignore_user_abort(true); 关闭浏览器,服务器也能自动执行。我自己写的控制器方法太长了,这
For的
死循环
(逗号表达式)
For的
死循环
(逗号表达式) 实例一 for(i=0 ,printf(“First=%d \n”,i ); i<10 ,printf(“Second=%d \n”,i ); i++ ,printf(“Third=%d\n”,i )) { printf(“Fourth=%d \n”,i); } 在学习逗号表达式的时候,我看到了上面的
一个
例子,拿到编译环境进行调试的时候,发现竟然是
一个
死循环
。我就纳闷了,这个不就是
一个
普通的
死循环
加上了输出语句,为何就变成了
死循环
呢? 运行结果如下: 为了避免错误,我把
用while写
一个
死循环
,实现用户输入
一个
数字后,立刻打印输出该数字,直到输入为0时为止,结束程序
while
死循环
C语言
69,368
社区成员
243,081
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章