【发布时间】:2015-10-04 15:02:58
【问题描述】:
我有以下代码在循环中将字符串附加到另一个。
代码
#include<stdio.h>
#include<string.h>
int main(void){
char src1[] = "name";
int i;
for (i=1;i<=5;i++){
strcat(src1,"opps");
printf("loop times %d\n",i);
}
printf("now src1 is:%s\n",src1);
return 0;
}
为了调试代码,我在代码中添加了printf 语句并进行了编译。当我运行时,我得到以下结果:
输出
循环次数 1 循环次数 0 循环时间 1886416641 现在 src1 是:nameoppsoppsopps
我的问题是“为什么printf 循环 1886416641 次?”此外,结果也不是我所期望的。有人可以帮我澄清一下吗?
【问题讨论】:
-
你写的越界。在这种情况下,您将覆盖循环计数器。
-
与其说“结果也不是我所期望的。”,更有用的是发布所期望的。