문자열을 연결하고 결합 된 문자열을 반환하는 작은 함수를 만들었습니다. 그러나 함수에서 세 번째 변수에 메모리를 할당 했으므로 함수가 완료되면 메모리를 해제 할 것인가 아니면 나중에 메모리를 확보해야 할 것인가? 그리고 그것을 해제해야한다면, 가장 세련된 솔루션은 무엇일까요?이 누수 메모리가 맞습니까?
다음은 테스트 코드입니다. 그것은 작동하지만 메모리가 해제되었는지 또는 내 도구로 해제되었는지 알 수 없습니다.
#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;
}
예. 모든 것을 자동화하고 코드를 더 쉽게 사용하기 위해이 기능을 사용했습니다. 그러나 StrCat가 대문자임을주의하십시오. 표준 strcat 호출이 아닙니다. –
방금 알아 챘습니다. 'StrCat'은 'strcat'과 유사합니다. 나는 그것을 'myStrCat'이라고 추천했다. –
오, 의도적인데, 잘 작동하고 다른 문자열 기능을 사용했습니다. 그러나 당신이 그것을 나쁜 습관으로 생각한다면 나는 그것을 바꿀 것이다. –