У меня есть следующий код для добавления строки в другую в цикле.Ошибка в выходе после цикла вызвана strcat?
Код
#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 раз? " Кроме того, результат также не то, что я ожидал. Может ли кто-нибудь прояснить это для меня?
Вы пишите из границ. В этом случае вы перезаписываете счетчик циклов. – EOF
Вместо «результата тоже не то, что я ожидал», более полезно опубликовать то, что ожидалось. – chux