gpt4 book ai didi

c - 如何惯用地使用 C 指针包装函数?

转载 作者:太空宇宙 更新时间:2023-11-04 01:52:09 25 4
gpt4 key购买 nike

21 世纪:

The easiest way to avoid bugs related to malloc is not to use malloc.

Production code tends to have few uses of malloc, typically wrapped in new/copy/free functions so the main code doesn’t have to deal further with memory management.

主要问题:有人可以提供一个 super 简单、惯用的例子来说明如何使用像这样的函数包装器来颠覆 freemalloc 的直接使用?

次要问题(可选):特别是,能否巧妙地使用此类函数来模拟 C++ shared_ptrunique_ptr?也就是说,使用这些函数是否可以让您免于担心您可能会不小心释放悬挂指针和/或造成泄漏?或者即使使用此类函数,这在 C 中也根本不可能吗?

最佳答案

是这样的吗? (它将添加一些类型的编译时检查,仅此而已)

typedef struct a_ {
int a;
int b;
} a;

a *new_a() {
return malloc(sizeof(a));
}

void free_a(a *p) {
free(p);
}

次要问题:Smart pointers/safe memory management for C?

关于c - 如何惯用地使用 C 指针包装函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41203181/

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