Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 分配给类型‘时不兼容的类型;结构ListNode’;_C_Linked List - Fatal编程技术网

C 分配给类型‘时不兼容的类型;结构ListNode’;

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

我尝试动态创建一个结构ListNodes的数组,在其中存储每个节点。 我收到这个消息,我不知道应该是什么问题

}


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