C语言,指针传递给客户端的释放问题

zhangwuji154 zhangwuji154 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
需求是,比如做一个通用的遍历一个文件夹的函数库(C++里做过一个这样的类,现在要改成C语言版本)
遍历到每个文件的时候,只负责提取出文件信息,对每个文件的处理,是由客户端传递的函数指针处理的。

typedef int (*PROCESS)(const fileinfo* fi);

int Traverse(const char* folder, PROCESS p)
{
while(findnext())
{
fileinfo fi = getinfo(...);
p(&fi);
}
}


如果fileinfo fi是个局部变量,传递进PROCESS 之后,如果客户端想存储这个指针,只好再复制一遍fileinfo这个变量。如果是fileinfo这里生成的时候就是指针,就需要在客户端决定什么时候释放这个指针。原来C++版本是用shared_ptr做的,智能指针,自动释放。

C语言要怎么做啊?
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
zhangwuji154
C语言 70,040 成员 243,237 内容