У меня возникли небольшие проблемы с тем, чтобы обернуть голову вокруг использования и установки указателей в связанных списках .... У меня продолжают появляться ошибки сегментации в моем коде, кто-нибудь видит какие-либо очевидные проблемы здесь?
В последнее время я получаю ошибки в каждом фрагменте кода, который я пишу, и это очень расстраивает, потому что я почти не могу их отследить. Я студент-физик, пытаюсь научить себя программировать, поэтому я очень начинающий программист, и я прошу прощения, что задаю такой общий вопрос, любой совет очень ценится!
(Чтобы объяснить код, мы должны создать связанный список с узлами, которые содержат три случайные переменные, а затем отсортировать список тремя различными способами, rand_double просто генерирует случайный double и работает отлично, так что я знаю, проблема не в этом !!)
Node* randomList(int length){
int i;
Node **head, *new;
head = malloc(sizeof(Node**));
*head = NULL;
new = malloc(sizeof(Node*));
new = NULL;
/*create list by adding new node to beginning of list, using 'push' method*/
for(i=0;i<length; i++){
/*set data in new node*/
new->value = (int)rand_double(0,10);
new->key1 = rand_double(10.0, 50.0);
new->key2 = rand_double(50.0, 90.0);
new->sort1 = malloc(sizeof(Node*));
new->sort2 = malloc(sizeof(Node*));
new->next = malloc(sizeof(Node*));
new->sort1 = NULL;
new->sort2 = NULL;
/*
set pointers
new node points to what head points to, head points to new
*/
new->next = *head;
*head = new;
}
return *head;
}