В C вы должны предоставить пространство для хранения чего-либо самостоятельно.«md5» имеет место только для 4 символов (+ нулевой терминатор).Там не хватает места для добавления "бла" там.
Более важно, вы не можете изменить строковый литерал.Они обычно только для чтения.Итак, вам необходимо:
- Предоставить хранилище, в котором вы можете хранить новый объединенный результат.
- Убедитесь, что в этой памяти достаточно места для полученной строки.
Например:
char result[9]; //the result here needs 8 characters + a nul terminator
strcpy(result,"md5 ");
strcat(result,"blah"
Или, например,
const char *a = "md5 ";
const char *b = "blah";
char *result = malloc(strlen(a) + strlen(b) + 1);
if(result == NULL) {
out of memory
return;
}
strcpy(result,a);
strcat(result,b);