我做了一个小函数来连接字符串并返回组合字符串。但是,由于我将内存分配给函数中的第三个变量,当函数完成时内存会被释放还是会保留在那里,需要我稍后释放它?如果我需要释放它,最时尚的解决方案是什么?
这是测试代码。它有效,但我无法判断我的工具是否释放了该内存。
#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;
}