Нет, нет неявного пути. Но вы могли бы реализовать функцию ref
, которая автоматически увеличивает счетчик, и функцию unref
, чтобы уменьшить его.
a.obj = ref(obj);
/* ... */
a.obj = something_else;
unref(obj);
И этот счетчик может быть чем-то внешним для любого из struct
s. Например, вы можете использовать хеш-таблицу для отслеживания отношений указатель - счетчик.
EDIT
Вы также можете посмотреть на gobject
, который предоставляет это через g_object_ref
/ g_object_unref
.