這次是關於使用結構作爲參數。在這個任務中,我必須創建一個FIFS隊列系統。靜態人員隊列的大小爲10.這意味着只有10人可以在隊列中。使用結構作爲參數
我也有類型爲static的head,tail和nbr_elem變量。尾部變量用於將人員添加到特定位置。而可變頭的vice_versa。 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功能複製INF,然後把它給數組把結構人員P1在隊列人排隊[QUEUE_MAX_SIZE]我猜(?)
void enqueue(person queue[QUEUE_MAX_SIZE])
{
queue[person_info(p1.first_name[7])];
}
我甚至不知道這是否是功能排隊的一個良好的開端,所以我在這裏需要一些幫助。我該如何在函數中使用靜態人員隊列[QUEUE_MAX_SIZE]?
我也有一個頭文件queue.h包含typedef人。頭文件然後被調用到queue.c這是這個文件。
您正在更新原始結構的副本。你需要從你的函數返回修改後的結構(或者用[Joachim的答案](http://stackoverflow.com/a/19880113/2455888))。 – haccks