Witam,
Mam problem z kopiowaniem elementów z listy jednokierunkowej . Chcę dodać z pierwszej listy do drugiej listy liczby podzielne przez 3, po odpaleniu program nie działa.
typedef struct Baza
{
int liczba;
struct Baza *next;
}el;
typedef struct Baza2
{
int liczba_mod;
struct Baza2 *n;
}el2;
el *head = NULL;
el2 *pocz = NULL;
int main()
{
int i;
for(i=1;i<=10;i++)
dodaj(&head,i);
edytuj(&pocz);
wypisz();
}
int dodaj(el**head,int x)
{
el *tmp = malloc(sizeof(el));
tmp->liczba = x;
tmp->next=*head;
*head = tmp;
}
void edytuj(el2**pocz)
{
el *tmp = head;
el2 *wsk = malloc(sizeof(el2));
while( tmp != NULL)
{
if( (tmp->liczba)%3==0 )
{
wsk->liczba_mod = tmp->liczba;
wsk->n = *pocz;
*pocz = wsk;
}
tmp=tmp->next;
}
}
void wypisz()
{
el2 *wsk = pocz;
while( wsk != NULL)
{
printf(" %d ",wsk->liczba_mod);
wsk=wsk->n;
}
}