Я сделал небольшую функцию для объединения строк и возврата объединенной строки. Однако, поскольку я назначаю память третьей переменной в функции, будет ли освобождена память после завершения функции или она останется там, что потребует от меня ее освобождения позже? и если мне нужно освободить его, какое самое стильное решение для этого?
Вот тестовый код. Это работает, но я не могу сказать, освобождена ли эта память моими инструментами.
#include <stdio.h>
#include <math.h>
#include <string.h>
char * StrCat(const char *st1, const char *st2){
char *string = calloc((strlen(st1) + strlen(st2) + 1), sizeof(char));
strcat(string, st1);
strcat(string, st2);
return string;
}
int main(){
printf("String: %s\n", StrCat("HELLO ", "WORLD"));
return 0;
}