从(c)中的不兼容指针类型分配

时间:2015-04-04 11:51:05

标签: c pointers

这是我的结构,

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;
}

我无法找到解决此问题的方法。一切都很好看。 谢谢你的任何建议。

1 个答案:

答案 0 :(得分:0)

你真正想要的是

q->link[index] = createRadixNode();

而不是

q->link[index] = createRadixNode;

这将解决此问题。顺便说一句,don't cast the result of malloc(and family) in C