gpt4 book ai didi

C 获取对象的所有引用?

转载 作者:行者123 更新时间:2023-11-30 14:26:21 26 4
gpt4 key购买 nike

如果我有一个对象atype obj,其中atype的定义类似于typedef struct myType {...} * atype,有没有我可以获得对 obj 的所有引用,或者至少有多少个引用?

类似于:

atype obj;
... // Allocate

aStruct a;
a.obj = obj;

aStruct b;
b.obj = obj;

int refs = get_references(obj); // refs should now = 2

有什么想法吗?欢迎使用解决方法和替代方法。

最佳答案

不,没有隐式的方法。但是您可以实现一个 ref 函数来自动增加计数器,并实现一个 unref 函数来减少计数器。

a.obj = ref(obj);

/* ... */
a.obj = something_else;
unref(obj);

该计数器可以是任何struct外部的东西。例如,您可以使用哈希表来跟踪指针 - 计数器关系。

编辑

您还可以查看gobject它通过 g_object_ref/g_object_unref 提供此功能。

关于C 获取对象的所有引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9246851/

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