c - 如何将 STRUCT 与 FIFO 一起使用



我正在用 C 语言学习"FIFO"这是我的第一个代码,试图通过参数将结构传递给 FIFO 函数,但它没有按预期工作......我不知道为什么。有人可以给我一个解释,我做错了什么?

我用葡萄牙语写了我的代码,如果你们很难理解,请告诉我我会翻译成英语。

#define TAMANHO 3
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

typedef struct
{
    char Nome[20];
} pretendentes; 

pretendentes // nome da estrutura
pessoas[10]; // vetor de estrutura

int main(void)
{
    setlocale(LC_ALL, "");

    cadastroPretendentes(pessoas);
    qstore(pessoas);
}
void qstore(pretendentes *Pessoas)
{
    int pfinal   = 0;
    int pinicial = 0;
    if(pinicial == TAMANHO)
    {
        printf("A fila está cheia.");
        return;
    }
    pessoas[pinicial] = Pessoas.Nome;
    pinicial++;
}
void cadastroPretendentes(pretendentes *Pessoas)
{
    int i;
    for(i = 0; i < TAMANHO; i++)
    {
        printf("Insira o nome do pretendente %d: ", i+1);
        scanf("%s", (*(Pessoas + i)).nome);
    }
}

假设pessoas是FIFO内存。

在cadastroPretendentes((中,你正在获取名称并存储到fifo内存中,而在qstore((中,你正在用pessoas[0]编写pessoas[0]。

如果 qstore 再被调用 2 次,数组中的第 1 和第 2 个元素将替换为 pessoas[0]。

在此代码中,qstore 不是必需的,因为 cadastroPretendentes(( 获取名称并存储在 pessoas (fifo 内存( 中

最新更新