我正在使用二叉搜索树数据结构来对一系列具有类型定义的结构进行排序:
typedef struct {
char c;
int index;
} data_t;
typedef struct node node_t;
typedef node {
void *data;
node_t *left;
node_t *right;
}
node_t typedef 来自为此目的提供给我的库,可能带有 void* 指针以确保多态性。 node
将被传递到函数中:
static void
*recursive_search_tree(node_t *root,
void *key, int cmp(void*,void*))
在 recursive_search_tree 函数中,我希望能够修改代码以使用索引元素作为条件来找到最接近线性传递的索引的匹配字符数组,这最终将涉及传递到的 data_t*key
和key->index
在函数内访问。
问题
是否可以访问key->index
keyvoid*
指向结构的位置,或者只有在声明为 key 的类型时data_t
才有可能?data_t
我试图做后者,但是即使将指针转换为 int 似乎也没有通过编译器。