Mam oto taki kod w Devie rusza działa i buczy. A w Visaul Studio nie. O co może chodzić?
#include <stdio.h>
#include <stdlib.h>
typedef struct Element //tworze swó nowy typ
{
char *Text;//przechowywany tekst
struct Element *next;//wskaźnik na następny elment listy
} elementListy;
void wypisz_liste(elementListy *lista) // na wejsciu mamy wskaźnik na pierwszy element listy
{
elementListy *wsk=lista;
while( wsk != NULL ) //wypisujemy wszystkie elementy listy od pierwszego do ostatniego
{
printf ("%s\n", wsk->Text);
wsk = wsk->next;//przejscie do kolejnego elementu listy czyli ustawienie wskaźnika na nastepny element
}
}
void dodaj_do_listy (elementListy *lista, char *Text)//pierwszy parametr wskaźnik na pierwszy element, drugi parametr to jes tekst
{
elementListy *wsk, *nowy;//wskaźniki pomocniczen
wsk = lista;
while (wsk->next != NULL)//przechodzimy liste az uzyskamy wskaźnik na ostatni element
{
wsk = wsk->next;
}
nowy =(elementListy*) malloc (sizeof(elementListy)); //rezerwujemy pamiec - tworzymy nowy element listy
nowy->Text = Text;
// nowy->Text = Text;
nowy->next = NULL; //jezeli jest na koncu listy no to musi byc null
wsk->next = nowy; //poprzedni wskazuje na ostatni element
}
void odwroc (elementListy *head)//jako parametr wskaznik na pierwszy elemnt listy
{
elementListy *a=head->next; // aktualny
elementListy *p=NULL; // poprzedni
elementListy *n=NULL; // nastepny
while (a!=NULL){
n=a->next;
a->next=p;
p=a;
a=n;
}
head->next=p;
}
elementListy *first; // pierwszy element
int main() {
first =(elementListy*) malloc (sizeof(elementListy));
first->next=NULL;
first->Text=NULL;
char* wejscie;
char* napis;
int maksik=123;
int cos=1;
while(cos)
{
napis = (char*) malloc (maksik);
wejscie = fgets (napis, maksik, stdin);
if(strcmp(napis, "\n")==0)//pojedyncza spacja lub tekst zaczynajacy sie od spacji konczy wejscie
break;
dodaj_do_listy(first,wejscie);
}
odwroc(first);
wypisz_liste(first);
return 0;
}