今回は、構造体をパラメーターとして使用することについてです。この課題では、FIFS キュー システムを作成する必要があります。静的な人のキューのサイズは 10 です。これは、キューに入れることができるのは 10 人だけであることを意味します。
静的タイプの変数 head、tail、および nbr_elem もあります。tail 変数は、特定の位置に人物を追加するために使用されます。可変ヘッドの場合はその逆です。nbr_elem はキュー内の人数です。私を助けるためにこれ以上の情報は必要ないと思います。今質問に:
関数のパラメーターとして構造体を使用するにはどうすればよいですか? これは私がこれまでに行ったことです:
static person queue[QUEUE_MAX_SIZE];
static int head = 0, tail = 0, nbr_elem = 0;
struct person
{
char first_name[7];
char sur_name[10];
char pers_nbr[10];
};
void person_info(struct person p1){
/*printf("First name: ");*/
scanf("%s", &p1.first_name[7]);
/* printf("Last name: ")*/;
scanf("%s", &p1.sur_name[10]);
/*printf("Id-number: ");*/
scanf("%s", &p1.pers_nbr[10]);
}
これまでのところすべて問題ありませんが、最初に strcpy-function を使用して inf をコピーし、それを配列 person queue[QUEUE_MAX_SIZE] に配置することで、struct person p1 をキューに配置する必要があります(?)
void enqueue( person queue[QUEUE_MAX_SIZE])
{
queue[person_info(p1.first_name[7])];
}
これが関数 enqueue の適切な開始であるかどうかさえわからないので、ここで助けが必要です。関数で静的な人物のキュー [QUEUE_MAX_SIZE] を使用するにはどうすればよいですか?
typedef person を含むヘッダー ファイル queue.h もあります。次に、このファイルである queue.c に対してヘッダー ファイルが呼び出されます。