链表-处理c中的链表

  • 本文关键字:链表 -处理 linked-list
  • 更新时间 :
  • 英文 :


我有一个像一样声明的头

#include <stdlib.h>
struct Nodo {
    struct Nodo *pAnterior;
    struct Nodo *pProximo;
    CACHORRO cachorro;
};
typedef struct Nodo *Lista;
typedef struct Nodo *DoenteMachucado;
typedef struct Nodo *portePequeno;
typedef struct Nodo *porteMedio;
typedef struct Nodo *porteGrande;

但是当我尝试使用功能时

void inserir(Lista *lista, CACHORRO elem)
{
    Lista Nodo;
    Nodo = (Lista)malloc(sizeof(struct Nodo));
    if(Nodo == NULL)
        printf("Sem memorian");
    Nodo->cachorro = elem;
    Nodo->pAnterior = NULL;
    Nodo->pProximo = (*lista);
    if((*lista) != NULL)
        (*lista)->pAnterior = Nodo;
    (*lista) = Nodo;
}

像这个

inserir(DoenteMachucado, elem);

它不起作用,我正在声明一个elem CACHORRO

  void inserir(Lista *lista, CACHORRO elem)

上述语句简化为

  void inserir(struct Nodo **lista, CACHORRO elem)//1

你把上面的函数称为

  DoenteMachucado something; 
  inserir(something, elem); //remember DoenteMachucado is a type not a variable ,something is a variable.so i have changed this.

其中第一个自变量的类型为struct Nodo*

  inserir(struct Nodo* something, elem);//2

参数在1和2处不匹配。您可能想将函数调用为

 DoenteMachucado something;
 inserir(&something, elem);

相关内容

  • 没有找到相关文章

最新更新