这是我的结构,
typedef struct radixNode *radixPtr;
struct radixNode{
int permission;
int end;
fileType type;
radixPtr link[ASCII_SIZE];
};
我为radixPtr分配内存,
radixPtr q;
q= createRadixNode();
当我尝试这样做时
q->link[index] = createRadixNode;
gcc发出警告:从c
中指出不兼容的指针类型这是分配记忆功能
radixPtr createRadixNode () {
radixPtr radix_node = (radixPtr)malloc(sizeof(struct radixNode));
int i;
if(radix_node == NULL) {
perror("There is no memory to create radix node");
exit(1);
}
radix_node->end = -1;
for (i = 0; i < ASCII_SIZE; ++i) {
radix_node->link[i] = NULL;
}
return radix_node;
}
我无法找到解决此问题的方法。一切都很好看。 谢谢你的任何建议。
答案 0 :(得分:0)
你真正想要的是
q->link[index] = createRadixNode();
而不是
q->link[index] = createRadixNode;
这将解决此问题。顺便说一句,don't cast the result of malloc
(and family) in C。