Boa tarde pessoal. poderiam me ajudar sobre meu problema.
Está dando estes 2 erros no meu código, podem me ajudar explicando o porque!?
[Error] cannot convert 'info {aka computadores}' to 'info* {aka computadores*}' for argument '1' to 'void pesquisar(info*)'
[Error] cannot convert 'info {aka computadores}' to 'info* {aka computadores*}' for argument '1' to 'info* remover(info*)'
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
typedef struct computadores{//Criacao da struct
char nome[15];
int sala,ano;
struct computadores *antes, *depois;
} info;
info *inserir(info*inicial){//inserir
info *novo=NULL, *i=inicial;
int s, a;
char no[15];
printf(" **Novo Computador!**\n");
printf("\n\n");
printf("Nome: ");
gets(no);
printf("Sala: ");
scanf("%d",&s);
printf("Ano: ");
scanf("%d",&a);
if(i==NULL){/*testa se a lista esta vazia*/
i = (info *) malloc(sizeof(info));
if(i==NULL)
printf("Nao foi possivel realizar a operacao !\n\n");
else{
strcpy(i->nome,no);
i->sala = s;
i->ano = a;
i->depois = NULL;
i->antes=NULL;
return(i);
}
}else{
novo=(info*)malloc(sizeof(info));
if(novo==NULL)
printf("Nao foi possivel realizar a operacao !\n\n");
else{
strcpy(novo->nome,no);
novo->sala = s;
novo->ano = a;
novo->depois=i;
novo->antes=NULL;
i->antes=novo;
return(novo);
}
}
}
void listar(info *inicial){
info *i=inicial;
if(i==NULL)
printf("**Lista Vazia !**\n\n");
else{
printf(" **IMPRESSAO DA LISTA**\n");
while(i!=NULL){
printf("Nome:%s\n",i->nome);
printf("Sala:%d\n",i->sala);
printf("Ano:%d\n\n",i->ano);
i=i->depois;/*p passa a apontar para o proximo elemento*/
}
}
}
void pesquisar(info *inicial){
char no[15];
info *i=inicial;
if(i==NULL)
printf("**Lista Vazia !**\n\n");
else{
printf("Pesquise por nome:\n");
scanf("%s",&no);
fflush(stdin);
while((i!=NULL)&&strcpy(i->nome,no)!=0){
i=i->depois;
if(i==NULL)/*verifica se nao encontrou o codigo na lista */
printf("**Computador nao cadastrado !**\n\n");
else{
printf("Computador encontrado");
}
}
}
}
info *remover(info *inicial){
info *aux=NULL;
info *i=inicial;
char no[15];
if(i==NULL)
printf("**Lista Vazia !**\n\n");
else{
printf("Computador que deseja remover:\n");
scanf("%s",&no);
while((i!=NULL)&&strcpy(i->nome,no)!=0){
aux=i;/*anterior sempre aponta para o anterior elemento da lista */
i=i->depois;/*p aponta para o proximo elemento da lista*/
}
if(i==NULL)
printf("**Computador nao encontrado !**\n\n");
else{
printf("**Posicao Removida !**\n\n");
if(aux==NULL){/*verifica se e o 1ºelemento da lista que sera eliminado*/
if(i->depois==NULL)
inicial=NULL;
else{
inicial=i->depois;
inicial->antes=NULL;
}
}else{
aux->depois=i->depois;
if(aux->depois!=NULL)
aux->depois->antes=aux;
}
free(i);
}
}
return(inicial);
}
int main(){
info *inicial=NULL;
char op;
do{
printf("*******************************************************\n");
printf("* *\n");
printf("* Universidade Luterana do Brasil *\n");
printf("* ULBRA *\n");
printf("* *\n");
printf("* ---Menu--- *\n");
printf("* *\n");
printf("* 1 - Insira um computador *\n");
printf("* 2 - Liste todos os computadores *\n");
printf("* 3 - Pesquise um computador *\n");
printf("* 4 - Remova um computador *\n");
printf("* 5 - Sair *\n");
printf("* *\n");
printf("*******************************************************\n");
scanf("%d",op);
system("cls");
switch(op){/*chamada das respectivas funcoes*/
case 1:
inicial=inserir(inicial);
break;
case 2:
info(inicial);
break;
case 3:
pesquisar(inicial);
break;
case 4:
inicial=remover(inicial);
break;
case 5:
printf("Sair");
break;
default :
printf("Opcao Invalida!\n\n");
printf("\a");
break;
}
fflush(stdin);
}while(op != 5);
}