一个简单的for循环引起的错误

C++实习生 2017-05-23 11:17:08
本人在学习sokcet时,遇到一个问题,求好心人解惑:

char buff[1024];【1】
int ret =0;
for (long i = 0;i<100000; i++)
{
//char buff[1024];【2】
sprintf(buff,"%d",i) ;
ret = send(s,buff,sizeof(buff),0);
}


问题来了:
1.buff变量放在【1】处
i 循环到70000+时就退出了,发现i值变成大于10万的随机值了。
这是什么原因呢。
是不是buff内存补破坏了吗?

2.buff变量放在【2】
虽然程序没有出错,但是原因不明白,所以还是不放心。

分数不多,诚心求教。
...全文
159 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
C++实习生 2017-05-23
  • 打赏
  • 举报
回复
晕。打代码时写错了。
 
char buff[1024];【1】
int ret =0;
for (long i = 0;i>100000; i++)
{  
     //char buff[1024];【2】
      sprintf(buff,"%d",i) ; 
     ret = send(s,buff,sizeof(buff),0);
}
worldy 2017-05-23
  • 打赏
  • 举报
回复
i 循环到70000+时就退出了,发现i值变成大于10万的随机值了。 i=70000+时,i大于10万,这是什么逻辑?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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