Trying to create a list and display it.
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)); // Приписываем ему значения tmp->percent0_100 = 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("%d ", head->process_name[10]); printf("%d ", head->ram); printf("%d ", head->percent0_100); head = head->next; } printf("\n"); } void main() { WinProc* head = NULL; push(head, "proc1",10,10); push(head, "proc2",20,20); push(head, "proc3",30,30); printLinkedList(head); } I get the Segmentation fault as if I was accessing memory that was inaccessible to me.
pushfunction parameter is WinProc *, and you are transmitting WinProc - Alexey Sarovskystrcpy/strncpy) - Alexey Sarovsky