我的代码显示两个错误。在我学习的过程中,我尝试了几种方法来解决它。拜托,有人可以帮助我吗?
我需要在堆栈中插入一个数字和一个字符串。但是你在我的结构中犯了一个错误。
由于我还是初学者,我一般都很难看到,但我认为方法是正确的,也许这是一个语法错误。
Ligacacao * topo - [错误]未知类型名称' Ligacacao'
Ligacacao pnovo =(Ligacacao )malloc(sizeof(Ligacacao)); - [错误]' Ligacacao'未申报(首次使用此功能)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#define MAX 5
typedef struct Ligacacao {
char hora[MAX];
int numero;
struct Ligacacao *prox;
};
char hora[MAX];
int numero;
Ligacacao *topo; //ERRRRRRO
void dados_ligacao() {
printf("\nEntre com a hora da chamada: ");
fflush(stdin);
fgets(hora, MAX, stdin);
printf("Entre com o numero do telefone: ");
fflush(stdin);
scanf("%d", &numero);
}
void push_ligacao() {
dados_ligacao();
Ligacacao *pnovo = (Ligacacao*)malloc(sizeof(Ligacacao));//ERRRRRRO
strcpy(pnovo->hora, hora);
pnovo->numero = numero;
pnovo->prox = NULL;
if (topo == NULL)//se a pilha estiver vazia
topo = pnovo; //topo recebe o novo elemento
else {
pnovo->prox = topo;
topo = pnovo;
}
}
void pop_ligacao() {
Ligacacao *aux;
if (topo == NULL) {
printf("\n\nErro, Sem ligacoes.\n\n");
return;
}
else {
aux = topo;
topo = topo->prox;
free(aux);
}
}
void listar_ligacao() {
Ligacacao *aux;
aux = topo;
while (aux != NULL) {
printf("\t\t\tDados Ligacao\n\n");
printf("Numero: %d", aux->numero);
aux = aux->prox;
}
}
int main() {
char op;
topo = NULL;
do {
system("cls");
printf("\t\t\Ligacoes");
printf("\n\n(E)mpilhar Ligacacao\n");
printf("(L)istar Estoque Ligacacaos\n");
printf("(D)esempilhar Ligacacao\n");
printf("(S)air do Programa\n\n");
printf("Digite a opcao: ");
op = toupper(getche());
switch (op) {
case'E': push_ligacao();
break;
case'L': listar_ligacao();
break;
case'D': pop_ligacao();
break;
case'S': exit(0);
default: printf("\n\nOpcao invalida, digite novamente.\n\n");
}
system("PAUSE");
} while (op != 'S');
return (0);
}
答案 0 :(得分:2)
我认为你错误地解释了你的结构。也许试试这个:
ffmpeg -f dshow -i video="Integrated Webcam" -c:v rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL output"
此外,您可能会发现此问题:typedef struct Ligacacao {
char hora[MAX];
int numero;
struct Ligacacao *prox;
} Ligacacao;
最后一个反斜杠可能不应该存在,或者你可能想要另外一个&#39;之后换另一个标签字符。
答案 1 :(得分:1)
错误1(第21行):
typedef struct Ligacacao {
char hora[MAX];
int numero;
struct Ligacacao *prox;
};
应该是:
typedef struct {
char hora[MAX];
int numero;
struct Ligacacao *prox;
}Ligacacao;
错误2(第39行):
pnovo->prox = topo;
应该是:
pnovo->prox = topo->prox;
错误3(第52行):
topo = topo->prox;
错误但无法分配给自己:
topo->prox= topo->prox;
错误4(第63行):
aux = aux->prox;
同样在这里。
错误5(第72行):
printf("\t\t\Ligacoes");
应该是:
printf("\t\t\tLigacoes");
或:
printf("\t\tLigacoes");