[英]Assignments for arrays of pointers to structs
目前,我正在研究C項目,以對通過 input.txt 文件給出的任意數量的 sudo 進程(及其某些屬性)進行 CPU 調度算法的基本模擬。
我想為進程創建一個結構數組和一個隊列,該隊列是指向這些結構的指針數組。 以我對 C 指針的了解,我相信我可以通過這種方式創建和分配指針數組,但是每次我在網上查找如何執行此操作時,我都會找到不同的解釋。 這是我的結構和指針代碼:
struct Process
{
int id;
int arrival;
int burst;
int priority;
};
int main()
{
//create array of Process(es) from input.txt
//numProcesses is obtained from parsing input.txt
struct Process processes[numProcesses];
//create ready queue for CPU scheduling
struct Process* fifoQueue[numProcesses];
//assume processes[] is filled here with info from input.txt
//loop through processes[] adding entries to the queue
for(i=0; i < numProcesses; i++)
{
//this is what I am confused about
fifoQueue[i] = &processes[i];
}
}
是否可以使用fifoQueue[i] = &processes[i];
初始化隊列還是我必須做一些 malloc() 魔術?
這取決於您在編譯程序時是否使用 C89 C 標准。 C89 要求能夠在編譯時確定所有數組大小,但 C99 及更高版本刪除了此限制。 如果您使用的是 C89,那么您將不得不使用malloc
來分配數組,否則,您所擁有的就可以了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.