当前,我正在一个 C 项目上,对通过输入.txt文件提供的任意数量的sudo进程(具有某些属性)进行CPU调度算法的基本仿真。 / p>
我想为进程创建一个结构数组,并创建一个指向这些结构的指针数组的队列。以我对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()魔术?
答案 0 :(得分:0)
这取决于编译程序时是否使用C89 C标准。 C89要求能够在编译时确定所有数组大小,但是C99及更高版本消除了此限制。如果您使用的是C89,则必须使用malloc
来分配数组,否则,您所拥有的就可以了。