C 分配给类型‘时不兼容的类型;结构ListNode’;
我尝试动态创建一个结构ListNodes的数组,在其中存储每个节点。 我收到这个消息,我不知道应该是什么问题 }C 分配给类型‘时不兼容的类型;结构ListNode’;,c,linked-list,C,Linked List,我尝试动态创建一个结构ListNodes的数组,在其中存储每个节点。 我收到这个消息,我不知道应该是什么问题 } 这是C++中的一个解决方案:在评论中我们的讨论之后,你可以把你的函数写为: struct ListNode* middleNode(struct ListNode* head) { int i=0; struct ListNode *retval; struct ListNode **array = malloc(100*sizeof(struct ListN
这是C++中的一个解决方案:
在评论中我们的讨论之后,你可以把你的函数写为:
struct ListNode* middleNode(struct ListNode* head)
{
int i=0;
struct ListNode *retval;
struct ListNode **array = malloc(100*sizeof(struct ListNode *));
while(head!=NULL)
{
array[i]= head;
head=head->next;
i++;
}
retval= array[i/2];
free(array);
return retval;
}
数组[i]
不是指针。这是一个struct ListNode
。在return
@PaulOgilvie之后,您不能释放(数组)
,谢谢您的回复。在这种情况下,如何在数组中存储某个节点?返回数组[i/2]
似乎毫无意义。你不会用它返回一个指针。打开编译警告。将数组存储在节点??还是将节点存储在阵列中?然后:复制节点或在数组中放置指向该节点的指针?
struct ListNode* middleNode(struct ListNode* head)
{
int i=0;
struct ListNode *retval;
struct ListNode **array = malloc(100*sizeof(struct ListNode *));
while(head!=NULL)
{
array[i]= head;
head=head->next;
i++;
}
retval= array[i/2];
free(array);
return retval;
}