История изменений
Исправление
Legioner,
(текущая версия)
:
char *concat(const char *s1, const char *s2) {
int s1_len = strlen(s1);
int s2_len = strlen(s2);
char *result = malloc(s1 + s2 + 1);
memcpy(result, s1, s1_len);
memcpy(result + s1_len, s2, s2_len);
result[s1_len + s2_len] = 0;
return result;
}
SO читать не советую. Читай Керниган&Ритчи, читай классику про юникс, читай паттерны от GoF. C простой язык, с ним не должно быть проблем, которые сложно решить самому.
Исправление
Legioner,
:
char *concat(const char *s1, const char *s2) {
int s1_len = strlen(s1);
int s2_len = strlen(s2);
char *result = malloc(s1 + s2 + 1);
memcpy(result, s1, s1_len);
memcpy(result + s1_len, s2, s2_len);
result[s1_len + s2_len] = 0;
return result;
}
Исходная версия
Legioner,
:
char *concat(const char *s1, const char *s2) {
int s1_len = strlen(s1);
int s2_len = strlen(s2);
char *result = malloc(s1 + s2 + 1);
memcpy(result, s1, s1_len);
memcpy(result + s1, s2, s2_len);
result[s1_len + s2_len] = 0;
return result;
}