11. januar 2005 - 11:08Der er
12 kommentarer og 1 løsning
Hægtede lister (igen)
Hej, så er jeg her igen :D
Hehe. Mit problem denne gang er som følger;
Jeg har oprettet en struct, der ser sådan ud
struct medlemmer { char navn[20]; char gade[20]; char postnummer[8]; char by[20]; char tlf[20]; char mobil[20]; char email[20]; int medlemsnr; struct medlemmer *ptrnext; };
Og oprettet en instans her: struct medlemmer *ptrfirst = NULL;
Jeg kan godt skrive data op i structen via gets(ptrthis->navn) (f.eks.). Men hvordan opretter jeg en ny instans, så jeg kan oprette endnu et medlem? Og hvordan får jeg structen skrevet ned i en fil på disken uden alt det overflødige data*?
Overflødige data = Alt det der følger med når man laver en char streng[20] og strengen kun fylder 14 chars.. så bliver de resterende 6 chars jo fyldt med random lort :(
Så nede i min fil ser det sådan ud:
A::D: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ:F:F:F: ÍÍÍÍÍÍÍÍÍÍÍÍ:F ÍÍÍÍÍ:F ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ:F ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ:F ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ:F ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Hvor "A::D:" og ":F::F:" bare er noget data jeg har skrevet for at teste..
Hvorfor bruge en fixed size til array ? F.eks. kunne man i stedet for gøre noget ala: newMedlem(.., char *navn, ..) { [..] medlem->navn = (char*) alloc(strlen(navn)) strcpy(medlem->navn, navn); [..] }
Du har alt det "overflødige data" fordi du har sagt at struct'en skal indeholde fixed size arrays (og du ikke bruger hele arrayet).
Men er det et problemet at filen indeholder det som den gør ? - så kan du evt., når du initialiserer et medlem, skrive 0 i de dele af arrayet du ikke bruger.
Når man skriver det ind i en fil, kommer der som sagt til at være en masse underlige tegn. Når man henter data ind fra filen igen og printer det ud, vil de underlige tegn være der ;)
Men jeg prøver mig lidt frem med den kode der! Så vender jeg lige tilbage :D
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.