указатель malloc сбой - PullRequest
       4

указатель malloc сбой

1 голос
/ 22 февраля 2012

Я попытался определить структуру узла, которая включает в себя узел * далее.Я пишу append(node* n) функцию, чтобы добавить новый узел рядом с предыдущим ,, но каждый раз, когда я запускаю код, это вызывает ошибку сегмента.Мой код следующий:

#include<stdlib.h>
#include<stdio.h>


typedef struct _log_t {
  struct _log_t* next;
}log_t;

void initi(log_t* l) {
  l = (log_t*)malloc(sizeof(log_t));
  l -> next = NULL;
}

void append(log_t* l){
  l->next = (log_t*)malloc(sizeof(log_t)); 
  l->next->next = NULL;
  l = l->next;
}

Заранее благодарен за любую помощь!

Ответы [ 2 ]

6 голосов
/ 22 февраля 2012
 l = l->next;

Эта строка не делает то, о чем вы думаете - фактически она ничего не делает.

Возможно, вы хотите передать log_t * как log_t** или вернуть новый log_t*.

0 голосов
/ 22 февраля 2012

Вы разыменовываете указатель, который вы никогда не инициализировали.Вот почему он рухнул

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...