#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct WinProc // Структура процессов windows
{
char process_name[10]; // имя
int ram; // сколько оперативной памяти использует
int percent0_100; // насколько нагружает процессор
struct WinProc *next; // указатель на следующий элемент
} WinProc;
void push (WinProc **head, char name[10], int ram, int percent)
{
// Создаем новый узел
WinProc *tmp = (WinProc*) malloc(sizeof(WinProc));
// Приписываем ему значения
memcpy(tmp->process_name, name, 10);
tmp->ram = ram;
tmp->percent0_100 = percent;
// Присваиваем указателю tmp адрес предыдущего узла
tmp->next = (*head);
// Присваиваем указателю head адрес нового узла
(*head) = tmp;
// После выхода из функции переменная tmp будет уничтожена.
// Получим список, в который будет вставлен новый элемент.
}
void printLinkedList(const WinProc *head)
{ // вывод содержимого списка
while (head) {
printf("%s ", head->process_name);
printf("%d ", head->ram);
printf("%d ", head->percent0_100);
head = head->next;
}
printf("\n");
}
int main()
{
WinProc* head = NULL;
push(&head, "proc1",10,11);
push(&head, "proc2",20,22);
push(&head, "proc3",30,33);
printLinkedList(head);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKdHlwZWRlZiBzdHJ1Y3QgV2luUHJvYyAgICAgIC8vINCh0YLRgNGD0LrRgtGD0YDQsCDQv9GA0L7RhtC10YHRgdC+0LIgd2luZG93cwp7CgljaGFyIHByb2Nlc3NfbmFtZVsxMF07ICAvLyDQuNC80Y8KCWludCByYW07ICAgICAgICAgICAgICAgIC8vINGB0LrQvtC70YzQutC+INC+0L/QtdGA0LDRgtC40LLQvdC+0Lkg0L/QsNC80Y/RgtC4INC40YHQv9C+0LvRjNC30YPQtdGCCglpbnQgcGVyY2VudDBfMTAwOyAgICAgICAvLyDQvdCw0YHQutC+0LvRjNC60L4g0L3QsNCz0YDRg9C20LDQtdGCINC/0YDQvtGG0LXRgdGB0L7RgAoJc3RydWN0IFdpblByb2MgKm5leHQ7ICAgLy8g0YPQutCw0LfQsNGC0LXQu9GMINC90LAg0YHQu9C10LTRg9GO0YnQuNC5INGN0LvQtdC80LXQvdGCCn0gV2luUHJvYzsKCnZvaWQgcHVzaCAoV2luUHJvYyAqKmhlYWQsIGNoYXIgbmFtZVsxMF0sIGludCByYW0sIGludCBwZXJjZW50KQp7CgkvLyDQodC+0LfQtNCw0LXQvCDQvdC+0LLRi9C5INGD0LfQtdC7CglXaW5Qcm9jICp0bXAgPSAoV2luUHJvYyopIG1hbGxvYyhzaXplb2YoV2luUHJvYykpOwoJLy8g0J/RgNC40L/QuNGB0YvQstCw0LXQvCDQtdC80YMg0LfQvdCw0YfQtdC90LjRjwoJbWVtY3B5KHRtcC0+cHJvY2Vzc19uYW1lLCBuYW1lLCAxMCk7Cgl0bXAtPnJhbSA9IHJhbTsKCXRtcC0+cGVyY2VudDBfMTAwID0gcGVyY2VudDsKCS8vINCf0YDQuNGB0LLQsNC40LLQsNC10Lwg0YPQutCw0LfQsNGC0LXQu9GOIHRtcCDQsNC00YDQtdGBINC/0YDQtdC00YvQtNGD0YnQtdCz0L4g0YPQt9C70LAKCXRtcC0+bmV4dCA9ICgqaGVhZCk7CgkvLyDQn9GA0LjRgdCy0LDQuNCy0LDQtdC8INGD0LrQsNC30LDRgtC10LvRjiBoZWFkINCw0LTRgNC10YEg0L3QvtCy0L7Qs9C+INGD0LfQu9CwCgkoKmhlYWQpID0gdG1wOwoJLy8g0J/QvtGB0LvQtSDQstGL0YXQvtC00LAg0LjQtyDRhNGD0L3QutGG0LjQuCDQv9C10YDQtdC80LXQvdC90LDRjyB0bXAg0LHRg9C00LXRgiDRg9C90LjRh9GC0L7QttC10L3QsC4KCS8vINCf0L7Qu9GD0YfQuNC8INGB0L/QuNGB0L7Quiwg0LIg0LrQvtGC0L7RgNGL0Lkg0LHRg9C00LXRgiDQstGB0YLQsNCy0LvQtdC9INC90L7QstGL0Lkg0Y3Qu9C10LzQtdC90YIuCn0KCnZvaWQgcHJpbnRMaW5rZWRMaXN0KGNvbnN0IFdpblByb2MgKmhlYWQpCnsgICAvLyDQstGL0LLQvtC0INGB0L7QtNC10YDQttC40LzQvtCz0L4g0YHQv9C40YHQutCwCgl3aGlsZSAoaGVhZCkgewogICAgCXByaW50ZigiJXMgIiwgaGVhZC0+cHJvY2Vzc19uYW1lKTsKICAgIAlwcmludGYoIiVkICIsIGhlYWQtPnJhbSk7CiAgICAJcHJpbnRmKCIlZCAiLCBoZWFkLT5wZXJjZW50MF8xMDApOwogICAgCWhlYWQgPSBoZWFkLT5uZXh0OwoJfQoJcHJpbnRmKCJcbiIpOwp9CgoKaW50IG1haW4oKQp7CglXaW5Qcm9jKiBoZWFkID0gTlVMTDsKCglwdXNoKCZoZWFkLCAicHJvYzEiLDEwLDExKTsKCXB1c2goJmhlYWQsICJwcm9jMiIsMjAsMjIpOwoJcHVzaCgmaGVhZCwgInByb2MzIiwzMCwzMyk7CgoJcHJpbnRMaW5rZWRMaXN0KGhlYWQpOwp9