gpt4 book ai didi

c - 我是否需要释放一个从函数接收动态分配对象的指针?

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

我正在实现一个从标准输入中读取 C 语言行的函数。这是代码:

char * stdin_getline(){
unsigned buffer_size = 100;
char *string = malloc(buffer_size);
char *string_temp;
char temp;
int i=0;
while(1) {
scanf("%c", &temp);
if (temp == '\n') {break;}
if (i == buffer_size-1) {
*(string+buffer_size) = '\0';
string_temp = malloc(buffer_size);
strcpy(string_temp, string);
free(string);
buffer_size *= 2;
string = malloc(buffer_size);
strcpy(string, string_temp);
free(string_temp);
}
*(string+i) = temp;
i++;
}
*(string+i+1) = '\0';
return string;
}

int main() {
char *temp_line;
temp_line = stdin_getline();
printf("%s\n", temp_line);
free(temp_line); // Is this line needed?
return 0;
}

我真的需要释放 main 函数中的 temp_line 指针吗?

最佳答案

函数调用与问题无关。由 malloc 分配的所有内容都必须使用 free 释放以避免内存泄漏。

关于c - 我是否需要释放一个从函数接收动态分配对象的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58645567/

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