Dead_Rabbit Skrevet 16. mars 2004 Del Skrevet 16. mars 2004 (endret) Jeg leser boka mi her og har nettopp kommet til kapittelett om pekere. Her forteller boka om hvor likt det er tabeller (nå har jeg sansynlig vis missfortstått en del ting, men her kommer ihverfall spørsmålet) Hvis pekere og tabeller er så likt, og man kan spare plass med og oprette noder og slette dem med new og delete, hva er da poenget med å bruke tabeller, er ikke pekere da mye bedre? Da sparer man jo plass? Endret 16. mars 2004 av zirener Lenke til kommentar
Zethyr Skrevet 16. mars 2004 Del Skrevet 16. mars 2004 Jeg kjenner ikke så godt de norske begrepene, men er 'tabeller' arrays?? Da er det litt forskjellig bruksområde... Lenke til kommentar
Dead_Rabbit Skrevet 16. mars 2004 Forfatter Del Skrevet 16. mars 2004 Jeg kjenner ikke så godt de norske begrepene, men er 'tabeller' arrays??Da er det litt forskjellig bruksområde... Tabeller = arrys tror jeg ja... Lenke til kommentar
Herr_Dude Skrevet 16. mars 2004 Del Skrevet 16. mars 2004 En tabell er en peker til første posisjon i tabellen, så setter du av plass til hele greien. Tabeller er et forenklet interface, slik at dersom du skal sette noe inn i tabellen din kan du bruke: eksempel[5] = 3.9; som setter 3.9 inn ett offset på 5 fra den første posisjonen... Dette er penere kode enn alternativet (du allokerer plass bak en vanlig peker og akksesserer offsetet ifra med 5*størrelsen til typen (her double) ) og kjappere enn å drive å opprette og slette noder hele veien. Om du skal opprette noen titalls noder må du jo ha en container for dem uansett, og da sparer du alikavel plass ettersom at dersom du skulle laget f.eks en linket liste ville den bestått av både n pekere og n verdier av typen double. Lenke til kommentar
A_N_K Skrevet 16. mars 2004 Del Skrevet 16. mars 2004 (endret) Du kan stort sett behandle pekere som de skulle være arrays, forskjellen ligger i at kompilatoren kjenner størrelsen på et array og kan (de)allokere det automatisk. F.eks fungerer double *tab(new double[20]); tab[19] = 2.2; Dette er ekvivalent med *(tab + 19) = 2.2; Edit: Du sparer ikke plass ved å allokere minne med new, bare så det er sagt. Forskjellen er at du kan dynamisk allokere minne, mens med arrays må størrelsen være kjent for kompilatoren (dvs. et tall som er bestemt ved kompilering). Endret 16. mars 2004 av A_N_K Lenke til kommentar
Dead_Rabbit Skrevet 16. mars 2004 Forfatter Del Skrevet 16. mars 2004 (endret) Ok tror jeg skjønner litt mere nå ihvertfall, takker for alle svar EDIT:Og når jeg fikk tengt meg litt om skjønner jeg enda litt mer, det meste står i boka men det er mye lettere å få det forklart slik Endret 16. mars 2004 av zirener Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå