<分区>
我在我的函数中使用 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);