Добавление структур в массив и изменение их атрибутов - PullRequest
0 голосов
/ 05 декабря 2018
    int numOfProcesses = 0;
printf("How many processes would you like to enter: ");
scanf("%d",&numOfProcesses);
struct process p[numOfProcesses];
int counter = 1;
// This is the quantum printf(argv[1]);
// This is the type to run printf(argv[2]);
if(argv[2] = "FCFS"){
  while(counter < numOfProcesses){
    int temp;
    p[counter];
    printf("For process %d: \n",counter);
    printf("Enter the pid: ");
    scanf("%d", p[counter].pid);
    printf("Enter the burst time: ");
    scanf("%d",p[counter].burstTime);
    printf("Enter the arrival time: ");
    scanf("%d",p[counter].arrivalTime);

    counter++;
  }

Я пытаюсь, чтобы мой код содержал массив структур и позволял мне редактировать атрибуты структур в массиве, но все продолжает приводить к ошибке сегмента.Что я делаю?

1 Ответ

0 голосов
/ 06 декабря 2018

Я вижу многократные проблемы в коде:

  1. if (argv [2] = "FCFS")

A.Я предполагаю, что цель состоит в том, чтобы сравнить вещи.Это должно быть "==" вместо "=".Но опять же, это не работает для строк

B.Для строк вы должны написать это так, как будто (! Strcmp (argv [2], "FCFS")

Линия p [counter];не нуженУ него нет никаких действий.

Счетчик должен быть инициализирован в 0 вместо 1

Я не уверен в членах структурыпроцесс, но я предполагаю, что они все целые числа.В scanf вы должны передать адрес членов

scanf ("% d", & p [counter] .pid);

scanf ("% d", & p [counter] .burstTime);

scanf ("% d", & p [counter] .arrivalTime);

Если они являются указателями на целые числа, то также возникнет ошибка сегментации, посколькуони нигде не инициализируются в коде

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...