簡體   English   中英

結構指針的 arrays 的賦值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM