Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 3.334 pregleda

Najnovija ↓

[Zadatak] Vezane liste 07.11.2005. u 23:26 · pre 255 meseci #1
Naime poceo sam raditi zadatke sa vezanim listama, a posto nisam ima ideje kako i sta uzeo sam knjigu i poceo raditi vec uradjeni, no medjutim neli dijelovi koda mi nisu jasni(oznacit cu ih) a uostalom program puca ne znam zasto. Ako mozete pogledajet i pomozite jer bez ovog nemogu proci ispit....
Unaprijed hvala

Code:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define    KRAJ (struct ime *) 0


struct ime{
char *p_ime;
struct ime *next;
};

struct ime *start=KRAJ;
void unos(void);
main()

{

unos();

}


void unos(void)
{
    struct ime *zadnji, *novi;
    char line[128];

    /*Dodavanje novog elementa*/

    novi=(struct ime *)malloc(strlen(line)+1);  
/*-nije mi jasno ovdje za sto se tocno alocira memorija- za pokazivac novi.. u knjizi pise "kod prvo alocira memoriju za element novi" - nejasno mi je zasto to cini tu a ne poslije scanf funkcije*/
    
    if (novi=NULL){
    printf("Nema dovoljno memorije . . .");
    exit(-1);
}

novi->next=KRAJ;
printf("Unesite ime > ");
scanf("%s", line);
novi->p_ime=(char *) malloc(strlen(line)+1);
if (novi->p_ime==NULL){
printf("Nema dovoljno memorije . . .");
} 
strcpy(novi->p_ime, line);

if(start==KRAJ) /*PRAZNA LISTA*/
start=novi;
else{
/*pronadji kraj liste*/
for(zadnji=start; zadnji-> next!=KRAJ; zadnji=zadnji->next)
; /*ne radi nista*/

/*sada neka zadnji pokazuje na novi element*/
zadnji->next=novi;
}

}




E da i prilikom kompajliranja javlja se warning da "novi nije inicijaliziran"

eto ako netko ima zelje i volje stvarno sam izgubljen a nemam koga pitat, unaprijed HVALA! ! !
Potpis
Poslije spavanja treba odmorit ! ! !
Re: [Zadatak] Vezane liste 08.11.2005. u 21:17 · pre 255 meseci #2
Momci svima vam se od srca zahvaljujem na pomoci.


H V A L A ! ! ! ! ! ! ! !


P.S

pa mogli ste barem napisati da se gonim u k***c ako nista drugo
jos jednom hvala
Potpis
Poslije spavanja treba odmorit ! ! !
Re: [Zadatak] Vezane liste 09.11.2005. u 18:42 · pre 255 meseci #3
vidim nitko ne odgovara...hm

ajd da probamo ovako napisi koji ti je zadatak pa cu ga ja il netko uradit ovo mi se stvarno ne da prepravljati jer kolko vidim nije ni blizu gotovog...(imao sam 5 na faxu iz programiranja valjda cu znat nesto :D )
Re: [Zadatak] Vezane liste 09.11.2005. u 22:09 · pre 255 meseci #4
Ma dobro mozda sam ja postavio samodio zadatka, ali mislio sam samo da mi netko objasni zasto se za " *novi " rezervira memorija velicine cjele strukture, no dobro hvala ti sto si barem pogledao, aj pokušat ću napisat zadatak pa ako bude grešaka javim se, još jednom hvala.
Potpis
Poslije spavanja treba odmorit ! ! !
Re: [Zadatak] Vezane liste 10.11.2005. u 14:07 · pre 255 meseci
izmenjeno 2 puta, poslednji put don_mathew 10.11.2005. u 14:12
  1. don_mathew10.11.2005. u 14:12zapis iz teksta poruke
  2. don_mathew10.11.2005. u 14:08zapis iz teksta poruke
#5
rezervira se zato jer radis sa strukturom a ne sa jednom varijablom pa da za nju samo rezerviras memoriju...

i onda preko pokazivaca novi tom rezerviranom djelu memorije dodjeljujes vrijednost...prosto objasnjeno :)

jer imas jos jedan pokazivac strukture na samu sebe koja ce odrediti mjesto te strukture u listi i pomocu njega pretrazujes listu i mozes naci svaki element liste...btw to s listama ti je najlakse nacrtati sebi tako sam ja uradio drugi ispit na ispitu sam jednostavno crtao lisise i nacin rada da bih shvatio gdje sta i kako...

i samo jos jedan prijedlog pokusaj da u definiciji strukture definiras stvarnu varijablu tipa char a ne pokazivac pa ces neke stvari mozda brze skontati...

http://www.fsr.ba/ispiti/URP-P-pismeni-ispit-primjeri.zip (skini ove zadatke pa malo pogledaj...)
Re: [Zadatak] Vezane liste 11.11.2005. u 00:50 · pre 255 meseci
izmenjeno 1 put, poslednji put glorius 11.11.2005. u 00:51
  1. glorius11.11.2005. u 00:51zapis iz teksta poruke
#6
Ups! Mala grescica a u sustini katastrofa!

Pogledaj...

Code:


if (novi=NULL){
    printf("Nema dovoljno memorije . . .");
    exit(-1);



Vec si dodelio nulu promenljivoj novi.

Samo ovo izmenu u sledece:

Code:


if (novi == NULL){
    printf("Nema dovoljno memorije . . .");
    exit(-1);



Pozdrav!
Potpis
EOF
Tema je zaključana, nove poruke nisu moguće.

Premeštanje teme