• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja malloc zgłasza segmentation fault ,gdy próbuję alokować prostą strukturę

0 głosów
258 wizyt
pytanie zadane 24 sierpnia 2020 w C i C++ przez DamianW Bywalec (2,080 p.)

Witam. Musiałem zaprojektować prymitywną forward_list w języku C.Mam problem z następującym kodem, który reprezentuje:

typedef struct q_node
{
   int key;
   struct q_node* next;
}q_node;

typedef struct queue
{
    size_t size;
    struct q_node* tail;
    struct q_node* head;
}queue;

q_node* make_node(int new_key)
{
   /* TUTAJ ZGŁASZA WYJĄTEK*/ q_node* new_node = malloc(sizeof (struct q_node));
    new_node->key = new_key;
    new_node->next = NULL;
    return new_node;
}

void queue_push_back(struct queue* queue,int new_key)
{
    //wywołuje funkcję make_node()
}

Problem polega na tym ,że funkcja malloc zgłasza wyjątek segmentation fault ,w funkcji make_node () ( sprawdzałęm w debugerze) . Ktoś wie dlaczego może tak być ? Z góry dziękuję za pomoc :D

komentarz 24 sierpnia 2020 przez j23 Mędrzec (195,220 p.)

Problem jest raczej w queue_push_back, której zawartości nie pokazałeś.

komentarz 24 sierpnia 2020 przez DamianW Bywalec (2,080 p.)
proszę bardzo

void queue_push_back(struct queue* queue,int new_key)
{
    if(queue->size == 0)
    {
        q_node* new_node = make_node(new_key);
        queue->head = new_node;
        queue->tail = new_node;
    }
    else
    {
        q_node* new_node = make_node(new_key);
        queue->head->next = new_node;
        queue->head = new_node;
    }
    ++queue->size;
}

 

komentarz 24 sierpnia 2020 przez j23 Mędrzec (195,220 p.)

A nie tak w else powinno być:

q_node* new_node = make_node(new_key);
new_node->next = queue->head;
queue->head = new_node;

?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
1 odpowiedź 369 wizyt
pytanie zadane 17 lutego 2022 w C i C++ przez Yaqbek Nowicjusz (160 p.)
0 głosów
0 odpowiedzi 1,331 wizyt
0 głosów
1 odpowiedź 260 wizyt
pytanie zadane 1 grudnia 2019 w C i C++ przez Aleksandra01 Użytkownik (530 p.)

93,632 zapytań

142,558 odpowiedzi

323,058 komentarzy

63,141 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...