gpt4 book ai didi

c - (c) 中不兼容指针类型的赋值

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

这是我的结构,

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

我找不到解决这个问题的方法。一切看起来都不错。感谢您的任何建议。

最佳答案

你真正想要的是

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

而不是

q->link[index] = createRadixNode;

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

关于c - (c) 中不兼容指针类型的赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29446062/

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