为什么c语言的循环跳不出去

秦月明空 2019-05-16 03:52:01
...全文
272 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Engureggg 2019-05-17
  • 打赏
  • 举报
回复
越界访问。肯定乱了。
自信男孩 2019-05-16
  • 打赏
  • 举报
回复
很有可能是修改了i的值。我也支持这种观点
自信男孩 2019-05-16
  • 打赏
  • 举报
回复
数组越界,可能修改了len的值?你在循环里打印一下len的值,看看是不是还是10;
拥抱Linux 2019-05-16
  • 打赏
  • 举报
回复

~ 1 楼 说得对!
CaptainXue 2019-05-16
  • 打赏
  • 举报
回复
你这个代码涉及对内存地址的操作,稍不注意就会导致内存问题,如果你是湘创建一个指定长度为len的数组话,你可以用malloc或者new动态申请内存空间,但是new容易造成内存泄露,所以最好还是用malloc: (1)假如申请长度为10的整型数组a,可以写成:int *a=(int*)malloc(sizeof(int)*10); (2)假如申请3行4列的二维整型数组b,可以写成: int **b=(int **)malloc(sizeof(int*)*M);//先申请M行的空间 for(i=0; i<=M-1; i++) //对于每一行动态申请 b[i]=(int*)malloc(sizeof(int)*N);
636f6c696e 2019-05-16
  • 打赏
  • 举报
回复
这代码各种内存越界,有什么意义? 死循环的原因是arr[1]的地址实质和i是一样的,也就是arr[1]=0执行后i会重置为0,导致死循环。 不同编译器运行结果不一定完全一致

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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