首页 > 解决方案 > 从另一个静态数组向 C 中的数组动态分配内存会产生垃圾值

问题描述

我正在为 FCFS 调度算法编写一个 C 程序。我一直在尝试动态分配一个数组,该数组包含存储在另一个静态整数数组中的进程 ID。

这是我的代码:

int pid[number_of_processes]; // Stores IDs of all processes

//Storing IDs of all Processes
   for(i = 0; i < n; i++){
     pid[i] = numberArray[i];
     printf("PID %d\n", pid[i]);
   }

int *ptr;
ptr = (int *)malloc(number_of_processes * sizeof(int));

for(int i =0; i< number_of_processes; i++){
  ptr[i] = pid[i];
  printf("PTR of %d is %d\n",i,ptr[i]);
}

pid[] 中的值为 {4,1,2,3,5} | number_of_processes = 5

我得到的输出是:

PTR of 0 is -395230048
PTR of 1 is 4
PTR of 2 is 100
PTR of 3 is 15
PTR of 4 is 5

预期输出是

PTR of 0 is 4
PTR of 1 is 1
PTR of 2 is 2
PTR of 3 is 3
PTR of 4 is 5

标签: cmemory-managementschedulingdynamic-memory-allocation

解决方案


推荐阅读