首页 > 解决方案 > 将结构作为参数的奇怪错误

问题描述

我收到以下非常奇怪的错误:

   24 | void InitList(LinkList &L)
      |                        ^
main.c:31:24: error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token
   31 | void InitList(LinkList &L);
      |                        ^
main.c: In function ‘main’:
main.c:36:5: warning: implicit declaration of function ‘InitList’ [-Wimplicit-function-declaration]
   36 |     InitList(&L);
      |     ^~~~~~~~

这是我的代码:

#include <stdio.h>
#include <stdlib.h>

typedef struct LNode
{
    int data;
    struct LNode* next;
}*Link, *Position;
typedef struct LinkList
{
    Link head,tail;
    int len ;
}LinkList;
struct LNode* NewNode()
{
    struct LNode* p;
    p = (struct LNode*)malloc(sizeof(struct LNode));
    p->next=NULL;
    if (p == NULL)
        exit(-1);
    return p;
}

void InitList(LinkList &L)
{
    Link p=NewNode();
    L.head=L.tail=p;
    L.len=0;
}

void InitList(LinkList &L);
int main()
{
    int M,i;
    LinkList L;
    InitList(&L);
}

标签: c

解决方案


引用是 C++ 的一个特性,而不是 C。您正在尝试接受对LinkList.


推荐阅读