gpt4 book ai didi

c - 返回从 C 中的另一个函数本地分配的文件文件描述符是否安全

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

#include <stdio.h>
#include <string.h>

FILE * BestTry();

int main()
{
char arr[] = "hello";
FILE * desc = BestTry();
fwrite(arr,1,5,desc);
fclose(desc);
}

FILE * BestTry()
{
FILE * retDesc = fopen(".\\hello.dat","w+");
return retDesc;
}

desc 用于任何用途是否安全,因为我正在将内存分配给函数 BestTry 中的局部变量。如果安全那么原因是什么?

最佳答案

FILE 对象在您的BestTry 函数中。该函数获取指向 FILE 对象的指针,该指针确实是本地的,但对象本身不是。

您所做的很好,当您返回指针时,实际的 FILE 对象仍然存在。 (很好,除非您不检查系统调用的返回值,因此当程序失败时您将很难调试它。)

关于c - 返回从 C 中的另一个函数本地分配的文件文件描述符是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18169550/

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