gpt4 book ai didi

c - 如何释放局部变量动态分配的内存?

转载 作者:行者123 更新时间:2023-11-30 18:35:43 35 4
gpt4 key购买 nike

示例程序:

#include <stdio.h>
#include <malloc.h>

void f(int n) {
char *val = (char *) malloc(12*sizeof(char));
val = "feels....";

printf("%s", val);

// free val; // if enable, compile time error: expected ';' before 'val' free val;
}

int main()
{
f(1);

return 0;
}

是否需要释放动态分配的内存?如果是,如何做。

最佳答案

是的,您需要释放内存。但是,当您为字符串分配内存时,填充字符串的方法不是为其分配字符串,因为这会替换您分配的内存。相反,您应该像这样使用函数 strcpy...

char *val = malloc(12*sizeof(char));
strcpy(val,"feels....");

printf("%s", val);
free(val);

关于c - 如何释放局部变量动态分配的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45610935/

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