Witam,
mam taki kod (fragment):
#include <stdlib.h>
#include <stdio.h>
typedef struct mode linked_list;
struct mode
{
int value;
int tablica[100];
struct mode *next;
};
linked_list *init()
{
return NULL;
}
linked_list *dodaj(linked_list **l,int table[], int wynik)
{
if((*l)==NULL)
{
struct mode *nowy=malloc(sizeof(struct mode));
nowy->next=nowy;
nowy->value=wynik;
for(int i=0; i<=100; i++)
{
nowy->tablica[i]=table[i];
}
(*l)=nowy;
}
else
{
struct mode *nowy=malloc(sizeof(struct mode));
nowy->next=(*l)->next;
nowy->value=wynik;
for(int i=0; i<=100; i++)
{
nowy->tablica[i]=table[i];
}
(*l)->next=nowy;
}
return (*l);
}
void wypisz(struct mode *l)
{
struct mode *w=l;
printf("Wypisywanie wartosci cyklu:");
do
{
w=w->next;
printf("%d \t", w->value);
}
while(w!=l);
}
int main()
{
linked_list *root;
root = init();
int table[100],
(wypelniam tablice czyms- to akurat dobrze dziala)
wynik=6;
root=dodaj(&root,table,wynik);
wypisz(root);
return 0;
}
Z tego co widze to blad wyskakuje w pętli do (funkcja wypisz).
Moim zdaniem wskaznik przy dodawaniu jest wporządku ustawiany i zwracany.
Jakieś sugestie czemu wypisz nie dziala?