gpt4 book ai didi

c - C 函数中的 malloc 和自由指针

转载 作者:太空宇宙 更新时间:2023-11-04 04:43:31 25 4
gpt4 key购买 nike

<分区>

我在我的函数中使用 malloc 然后返回指针。我必须在哪里使用函数 free(ret_str) 释放内存?在 function_name() 方法内部还是外部?以及如何做到这一点?

功能:

char* function_name(void)
{
int state = 3;
//char *ret_str = malloc(40 * sizeof(char));
Send("string");
state = wait_response();
if(state == 1)
{
char *ret_str = malloc(40 * sizeof(char));
strcpy(ret_str, rx_buffer+(strcspn(rx_buffer, "?")+5));
strncpy(ret_str+strcspn(ret_str, "\r"), " ", 1);
strncpy(ret_str+strcspn(ret_str, "\n"), ret_str+strcspn(ret_str, "\n")+3, 2);
ret_str[strcspn(ret_str, "\n")] = '\0';
empty_buffer(p_rx_buffer);
return ret_str;
}
else
{
empty_buffer(p_rx_buffer);
return "D_ERROR";
}
}

函数调用:

char *current_setting;
current_setting = function_name();
free(current_setting);

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