gpt4 book ai didi

c - 这会泄漏内存吗?

转载 作者:太空狗 更新时间:2023-10-29 15:10:00 25 4
gpt4 key购买 nike

我做了一个小函数来连接字符串并返回组合的字符串。但是,由于我将内存分配给函数中的第三个变量,当函数完成时内存会被释放还是会保留在那里,需要我稍后释放它?如果我需要释放它,最时尚的解决方案是什么?

这是测试代码。它有效,但我无法用我的工具判断该内存是否已释放。

#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;
}

最佳答案

是的,您需要释放它。

大概是这样的:

int main(){
char *s = StrCat("HELLO ", "WORLD");
printf("String: %s\n", s);
free(s);
return 0;
}

关于c - 这会泄漏内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1055450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com