Wskaźniki C++

Lokaty Lokacz
Użytkownik
Użytkownik
Posty: 41
Rejestracja: 16 lis 2008, o 18:55
Płeć: Mężczyzna
Lokalizacja: Bestwina
Podziękował: 7 razy

Wskaźniki C++

Post autor: Lokaty Lokacz »

Kod: Zaznacz cały

void tworzListe(void)
{struct osoba *nowy,*pocz,*biez;
 char *i,*p,znak;
 if(begin==NULL)
 nowy=pocz=biez=NULL;
 cout<<"Znak '0' oznacza zakończenie wprowadzania danych."<<endl;
 if (pocz==NULL) cout<<"\nPodaj pierwszy elementu: ";
 do {
     nowy = (struct osoba *)malloc(sizeof(struct osoba));
     i=(char *)malloc(512*sizeof(char));
     if (pocz!=NULL) cout<<"Podaj nastepny element: ";
     cin>>i;
     nowy->imie = (char *)malloc((strlen(i)+1)*sizeof(char));
     strcpy(nowy->imie, i);
          if (pocz==NULL) {
                      begin=nowy;
                      pocz=nowy;
                      biez=nowy;
                      biez->nast = NULL;
                      biez->i=1;
                     }
        else {biez->nast = nowy;
              nowy->i=biez->i+1;
              biez=nowy;
              nowy->nast = NULL;
             }
    }    
while( !='0'); 

}
Witam chodzi mi tylko o warunek zakończenia działania tej funkcji. Chce żeby ona się kończyła gdy wprowadze element 0... i niby prosta sprawa ale nie wiem jak to zrobić... Bardzo prosze o pomoc
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

Wskaźniki C++

Post autor: spajder »

Kod: Zaznacz cały

while( !='0'); 
????
Nie mieszaj tak C i C++ (np. przed deklaracją nie potrzeba struct, stosuj new i delete itp.)

Co do problemu:
[/code]
if(strcpy(i, "0"))
return; // konczy funkcje

if((strcpy(i, "0"))
break; // wychodzi tylko z pętli. Tego powinieneś użyć, bo trzeba jeszcze zwolnić przydzieloną pamięć
[/code]
ODPOWIEDZ