Я пытаюсь создать FIFO с помощью struct, но она не работает, я пытаюсь выяснить, что не так с моим кодом со вчерашнего вечера. Это всего лишь прототип, и пока все, что делает мой код, это хранить информацию. Видимо, он не делает даже этого.
#define TAM 10
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <locale.h>
typedef struct
{
int final;
int inicio;
int tamanho;
int contador;
char *vetorFila[TAM];
} pretendentes;
void entrarComDadosLista();
void armazenarDadosLista();
int main(void)
{
setlocale(LC_ALL, "");
int i;
for (i = 0; i < TAM; i++)
{
pretendentes -> vetorFila[i] = NULL;
}
entrarComDadosLista();
return 0;
}
void entrarComDadosLista()
{
static char nomes[10], *ptr;
printf("Digite o nome ou aperte ENTER para sair.\n\n");
do
{
printf("Digite o nome do pretendente: ");
scanf("%s", nomes);
ptr = (char*) malloc(strlen(nomes));
strcpy(ptr, nomes);
armazenarDadosLista(ptr);
} while(*nomes);
}
void armazenarDadosLista(pretendentes *Pretendente, char *nomes)
{
if(Pretendente -> inicio == TAM)
{
printf("A fila está cheia.");
return 0;
}
Pretendente -> vetorFila[Pretendente->inicio] = nomes;
Pretendente -> inicio++;
}
Может кто-нибудь дать мне руку, чтобы найти мою ошибку? Код компилируется, но перестает работать после нескольких записей. Я просто хочу проверить, хранятся ли имена в fifo.