fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct WinProc // Структура процессов windows
  6. {
  7. char process_name[10]; // имя
  8. int ram; // сколько оперативной памяти использует
  9. int percent0_100; // насколько нагружает процессор
  10. struct WinProc *next; // указатель на следующий элемент
  11. } WinProc;
  12.  
  13. void push (WinProc **head, char name[10], int ram, int percent)
  14. {
  15. // Создаем новый узел
  16. WinProc *tmp = (WinProc*) malloc(sizeof(WinProc));
  17. // Приписываем ему значения
  18. memcpy(tmp->process_name, name, 10);
  19. tmp->ram = ram;
  20. tmp->percent0_100 = percent;
  21. // Присваиваем указателю tmp адрес предыдущего узла
  22. tmp->next = (*head);
  23. // Присваиваем указателю head адрес нового узла
  24. (*head) = tmp;
  25. // После выхода из функции переменная tmp будет уничтожена.
  26. // Получим список, в который будет вставлен новый элемент.
  27. }
  28.  
  29. void printLinkedList(const WinProc *head)
  30. { // вывод содержимого списка
  31. while (head) {
  32. printf("%s ", head->process_name);
  33. printf("%d ", head->ram);
  34. printf("%d ", head->percent0_100);
  35. head = head->next;
  36. }
  37. printf("\n");
  38. }
  39.  
  40.  
  41. int main()
  42. {
  43. WinProc* head = NULL;
  44.  
  45. push(&head, "proc1",10,11);
  46. push(&head, "proc2",20,22);
  47. push(&head, "proc3",30,33);
  48.  
  49. printLinkedList(head);
  50. }
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
proc3 30 33 proc2 20 22 proc1 10 11