В настоящее время я изучаю C, и мне любопытно понять, почему запуск исполняемого файла из приведенного ниже кода не приводит к выводу и почему мне нужно CTRL + C для принудительного завершения (пытаясь также понять, почему и как могут возникать такие ситуации CTRL + C). Код взят из решения, которое я видел при написании указателя версии strcat из K & R.
Примечание. Когда я использую реальную библиотеку строк и использую фактические функции strcpy, strcat, кажется, что быть проблемой.
void point_strcpy(char *s, char *t){
while ((*s = *t) != '\0') {
;
}
}
void *point_strcat(char *s, char *t) {
while (*s) {
s++;
}
point_strcpy(s, t);
return s;
}
int main(){
char buf[100];
char *test[] = {"Hi", "World", "it's", "showtime"};
int num = sizeof(test)/sizeof(test[0]);
for (int i = 0; i<num; i++){
for (int j = 0; j<num; j++){
point_strcpy(buf, test[i]);
point_strcat(buf, test[j]);
printf("%s + %s = %s \n", test[i], test[j], buf);
}
}
return 0;
}