Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Funkcija za skidanje stringa sa pocetka liste

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Funkcija za skidanje stringa sa pocetka liste

[ Pregleda: 2873 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

negative7
Ivan Raic

Član broj: 186110
Poruke: 151
*.tel.net.ba.



Profil

icon [Zadatak] Funkcija za skidanje stringa sa pocetka liste21.06.2009. u 13:33 - pre 180 meseci
funkcija za skidanje stringa sa pocetka liste,nakon sto je pozovem pobrise mi se citava lista.vrati on dobar string,ali
ne znam zasto mi se pobrise citava lista. nije kvar u ''&head'',jer sa samo ''head'' neradi nista.

Code:


// ovo mi stoji gore
struct node 
{
   char *data;
   struct node *next;
};
typedet struct node node;
typedet struct node* pnode;

char *skini_sapoc(pnode &head)
{
       if(!prazna(head))//ova funkcija dobro radi,nisam je piso.
         {
            char*y=(char*)malloc(strlen(head->data)*sizeof(char));
            strcpy(y,head->data)
            pnode x=head;
            head=head->next;
            free(x);
            return y;
         }
       else
          {
             return NULL;  
          }
}


a bez stringa kad je rijec o broja ovo sve odlicno radi,zasto sta sam pogrijesio
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: [Zadatak] Funkcija za skidanje stringa sa pocetka liste21.06.2009. u 17:11 - pre 180 meseci
U mallocu nisi uračunao jedan bajt za terminator stringa, možda to pokvari nešto, mada ne verujem. Mislim da ti se ne pobriše čitava lista, nego samo izgubiš pokazivač na nju. Na prvi pogled ovo bi trebalo da radi. Moraćeš da debaguješ ovo korak po korak i da u svakom koraku proveriš da li je sve onako kao što bi u tom koraku trebalo da bude. Možda greška nije u ovom delu koda nego u nekom drugom.
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: [Zadatak] Funkcija za skidanje stringa sa pocetka liste21.06.2009. u 17:43 - pre 180 meseci
Koristiš C++ kompilator? U tom slučaju je "pnode &head" referenca na pokazivač na head, ako si u C-u trebalo bi da koristiš "pnode *head" gde treba u kodu (pokazivač na pokazivač na head) i onda (*head tj. (*head)->data ili napraviš pnode iter = *head pa koristiš iter).

Kako si alocirao head van ove funkcije? Ako si memoriju alocirao kao blok, free(x) će osloboditi ceo blok.

I kao što je Mihajlo već rekao, fali ti prostor za još jedan char u malloc() pozivu.

Moj prigovor bi išao na estetiku, uobičajeno je da ovakve funkcije vraćaju pokazivač na novi početak liste, a da se znakovna niska smešta u pokazivač. Prototip bi onda bio: pnode skini_sapoc(pnode head, char* return);.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

negative7
Ivan Raic

Član broj: 186110
Poruke: 151
*.tel.net.ba.



Profil

icon Re: [Zadatak] Funkcija za skidanje stringa sa pocetka liste21.06.2009. u 18:42 - pre 180 meseci
hvala obojici,izgleda sve je bilo uredu isao sam debug korak po korak,greska je bila sto sam u mainu u switch naredbi
imao ispod poziva ove funkcije funkciju oslobodi (koja je brisala citavu listu )a zaboravio sam break poslije ove funkcije ''skini sa pocetka''.

Nista hvala jos jednom
 
Odgovor na temu

radoica

Član broj: 12972
Poruke: 158
93.86.1.*



+3 Profil

icon Re: [Zadatak] Funkcija za skidanje stringa sa pocetka liste22.06.2009. u 14:01 - pre 180 meseci
Kada se oslobadja ovo "x", da li treba pre
Code:
free(x);

dodati
Code:
free(x->data);

?
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
*.dynamic.sbb.rs.



+7 Profil

icon Re: [Zadatak] Funkcija za skidanje stringa sa pocetka liste25.06.2009. u 22:42 - pre 180 meseci
Treba
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Funkcija za skidanje stringa sa pocetka liste

[ Pregleda: 2873 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.