jonask Skrevet 29. juni 2004 Del Skrevet 29. juni 2004 Hei hei! Jeg er fullstendig nebbete i C, har ikke holdt på mer enn et par uker, men jeg har skrevet VB i litt over 4 år Og som forventet er det en del ting å lære seg på nytt. En ting som jeg stusser fært på er pointere. Vel, det vil si, jeg har skjønt dealen med at de peker til minneadresser og jeg innser at dette er veldig praktisk og alt mulig, men et spørsmål kommer tilbake. Hvis de peker til minne adresser, så betyr vel det EGENTLIG at de peker til hardware adressen? correct me if i'm worng. Så burde det da ikke være mulig for c programmer å lese andre adresser også? si at jeg vil lese port 888, som er parallellporten (synes jeg å huske). hvordan kan jeg lage en pointer som peker dit? hvordan kan jeg lage en pointer som peker til en adresse jeg skriver inn? Lenke til kommentar
søppel Skrevet 29. juni 2004 Del Skrevet 29. juni 2004 (endret) Parallel port: http://www.pchell.com/hardware/irqs.shtml#I/O%20Addresses (LPT1) De to siste spørsmålene er besvart i en tidligere tråd som ble spurt like før din. Generellt sett kan ikke en prossess aksessere minne utenfor sitt eget område ("protected mode" @ google), man bruker i stedet OS-spesifike funksjonskall for å få tilgang til maskinvare. Protected mode er en god ting. Linux: http://www.tldp.org/HOWTO/IO-Port-Programming.html (sjekk også man-sidene og info-sidene) http://people.redhat.com/twaugh/parport/html/ppdev.html http://www.xml.com/ldd/chapter/book/ Win32: http://msdn.microsoft.com/library/default....s_resources.asp Endret 29. juni 2004 av søppel Lenke til kommentar
jonask Skrevet 29. juni 2004 Forfatter Del Skrevet 29. juni 2004 aaahaaa, hmmm, vel beklager at jeg ikke sjekka det før jeg skrev ny post i alle fall. og takk for raskt svar =) menneh, blir det da int* i = reinterpret_cast<int*>(0xadresse) ? da peker i til "adresse"? og blir i nå en pointer eller en vanlig variabel, siden det er "int* i" og ikke "int *i" som jeg er vant til. Husk at jeg er helt nub er da, hehe Lenke til kommentar
søppel Skrevet 29. juni 2004 Del Skrevet 29. juni 2004 (endret) menneh, blir daint* i = reinterpret_cast<int*>(0xadresse) peker i til "adresse"? Ja, eller man sier i er en peker til en int, hos adressen "adresse", der peker til int er typen. og blir i nå en pointer eller en vanlig variabel, siden det er "int* i" og ikke "int *i" som jeg er vant til. char* c1; char *c2; char * c3; char * c4; Alle disse gir variabler med akkurat samme type. Så de er like, men i C++ er det vanlig stil å ha * innat typen, altså slik: int* a; char* b; MinType* c; Edit: ..mens i C er det vanlig å ha * innat variabelen, altså slik: int *a; char *b; MinType *c; Jeg foretrekker i hvertfall helt klart "C++-stilen". Endret 29. juni 2004 av søppel Lenke til kommentar
jonask Skrevet 29. juni 2004 Forfatter Del Skrevet 29. juni 2004 Det svarer alle mine spørsmål! Tusen takk Lenke til kommentar
Tr1llobite Skrevet 29. juni 2004 Del Skrevet 29. juni 2004 (endret) Et lite spørsmål, hvis du skal ha en pointer til char*, blir det da char**? Er temmelig sikker på dette, siden du kan se det i int main(int argc, char** argv) men uansett er det kjekt å vite sikkert... Endret 29. juni 2004 av kr1570ffz0r Lenke til kommentar
søppel Skrevet 29. juni 2004 Del Skrevet 29. juni 2004 (endret) Stemmer det du sier: En peker til char blir char*. En peker til char* blir char**. ..og sånn kan en fortsette.. "En peker til en peker til en char." Endret 29. juni 2004 av søppel Lenke til kommentar
Tr1llobite Skrevet 29. juni 2004 Del Skrevet 29. juni 2004 Nå sitter jeg litt fast her.... char* x = "En string" går an, men char x = "En string" går ikke an, fordi char bare er en character... Hmm... Jeg trodde char* var det samme som char[], altså en string(i C), selv om * betyr peker (jeg har lurt litt på den)... Kanskje litt dårlig forklaring, men jeg tror dere sjønner hva jeg mener.. Lenke til kommentar
søppel Skrevet 29. juni 2004 Del Skrevet 29. juni 2004 Kanskje litt dårlig forklaring, men jeg tror dere sjønner hva jeg mener.. Hm, ikke helt .. hehe - altså; hva er spørsmålet(?). Lenke til kommentar
Tr1llobite Skrevet 29. juni 2004 Del Skrevet 29. juni 2004 (endret) Ja det var det.... Er ikke char* det samme som char[]? Hvis ikke, kan du forklare forskjellen? EDIT: Jeg kan bruke disse to på samme måte - det er derfor jeg lurer... Endret 29. juni 2004 av kr1570ffz0r Lenke til kommentar
saboi Skrevet 29. juni 2004 Del Skrevet 29. juni 2004 (endret) char* og char[] er ikke det samme (les: er det samme) char[] er er char array og char* er en peker til en char (som kan være det første elementet i en array). du kan bruke de på samme måte, men char* kan peke til nye arrayer osv. char* foo = "en string"; char foo[] = "en string"; char* foo = "en string"; skal egentlig være const char* siden den peker til "en string" som er en string literal i minnet som du ikke kan forandre. mens char foo[] = "en string"; kan du forandre siden "en string" blir kopiert til arrayen Endret 29. juni 2004 av saboi Lenke til kommentar
Tr1llobite Skrevet 29. juni 2004 Del Skrevet 29. juni 2004 Aaah, nå skjønner jeg! Takk for info! Lenke til kommentar
jonask Skrevet 30. juni 2004 Forfatter Del Skrevet 30. juni 2004 Jeg klarte det! takket være litt hjelp Nå kan jeg lese og skrive dit jeg vil, (med noen unntak seff ) Lenke til kommentar
GeirGrusom Skrevet 30. juni 2004 Del Skrevet 30. juni 2004 char* er en peker til et minne området (der datatypen er char) char[] er en macro aktig sak, du kan ikke deklarere en char[], men du kan bruke char* til dette. bruker du [x] på en peker, vil du få dataen som ligger x * sizeof(datatype) fra pekeren. du kan også bruke "char *cv; cv+=x" Lenke til kommentar
Manfred Skrevet 30. juni 2004 Del Skrevet 30. juni 2004 Søppel: "Vi har dessverre ingen informasjon om ordet 'innat' i bokmålsdatabasen" inntil prep 1 inn til, bort til, inn mot sette seg i- bordet / de stod tett i- hverandre / stigen stod i- veggen (...) Lenke til kommentar
søppel Skrevet 30. juni 2004 Del Skrevet 30. juni 2004 (endret) innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, There .. da kan jeg det utenat. Omtrent like on-topic dette, ellerhva? (Se om du finner noen feil i noen av de eldre postene mine også da.) Endret 30. juni 2004 av søppel Lenke til kommentar
Tr1llobite Skrevet 30. juni 2004 Del Skrevet 30. juni 2004 (endret) innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, innat, There .. da kan jeg det utenat. Omtrent like on-topic dette, ellerhva? (Se om du finner noen feil i noen av de eldre postene mine også da.) [OFFTOPIC SVADA] Det kan du være bombesikker på. Stå på, skriv som du vil! [/OFFTOPIC SVADA] EDIT: Glemte offtopic svada taggen... EDIT2: Vel, en peker til char* peker ikke på flere chars, men programmet fortsetter å lese fra minnet til det treffer på slemmingen NULL. Det lærte jeg da jeg skrev en bitteliten bootloader for noen dager siden. Endret 11. juli 2004 av kr1570ffz0r 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å