在c中处理链表
Dealing with linkedlist in c
我有一个header这样声明的
#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 memoria\n");
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);
我有一个header这样声明的
#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 memoria\n");
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);