Witam,
ciągle próbuję i w żaden sposób nie mogę dojść do tego, co powoduje Segmentation fault. Być może jest to związane z kopiowaniem tablicy char do struktury, nie wiem.
Jestem w tym temacie zupełnie nowy. Proszę o jakąś podpowiedź.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct dane_t {
char * numer;
char *imie;
struct dane_t *next;
struct dane_t *prev;
} dane_t;
typedef struct {
struct dane_t *first;
struct dane_t *last;
} list_t;
list_t* initial(void) {
list_t*lista = malloc(sizeof(list_t));
lista->first = NULL;
lista->last = NULL;
return lista;
}
void add_data(list_t*lista, dane_t Nowe) {
dane_t *zbierz = malloc(sizeof(dane_t));
zbierz->imie = Nowe.imie;
zbierz->numer = Nowe.numer;
zbierz->next = NULL;
zbierz->prev = lista->last;
if (!lista->first) {
lista->first = zbierz;
} else
lista->last->next = zbierz;
lista->last = zbierz;
}
void wypisz(list_t*lista) {
dane_t* pisak;
pisak = lista->first;
while (pisak) {
printf("%s ,", pisak->imie);
printf("%s", pisak->numer);
printf("\n");
pisak = pisak->next;
}
}
int main() {
list_t * mojalista = initial();
dane_t get_data;
char *T = "123456";
char *Y = "Jan";
char *U = "654321"; ///przykładowe dane
char *I = "Piotr";
strcpy(get_data.imie, Y);
strcpy(get_data.numer, T);
add_data(mojalista, get_data);
strcpy(get_data.imie, I);
strcpy(get_data.numer, U);
add_data(mojalista, get_data);
wypisz(mojalista);
dane_t *e;
return 0;
}