Avatar billede jackonlinux Nybegynder
09. november 2000 - 14:22 Der er 7 kommentarer og
1 løsning

Pointer til en pointer

Duer dette? :

char *nme;
char *tmp_nme;

**tmp_nme = *nme;
??
Avatar billede borrisholt Novice
09. november 2000 - 14:29 #1
Den funktuin der vil have en pointer til en pointer kan du bare give (void *)&nme som argument.
Avatar billede devia Nybegynder
09. november 2000 - 14:42 #2

erklærer du en variabel som følgende:

char *c;

-gælder følgende ved brug:

c = 123;  // Adressen på c bliver sat til 123
*c = 123;  // Indholdet af c bliver sat til 123
&c = 123;  // adressen til adressen på c bliver sat til 123

Altså \'*\' går \"ind\" i variablen og \'&\' går \"ud\"

Definerer du således en pointer til en pointer således:

char **flan;

Kan du få indholdet af variablen ved at referere til **c
- og adressen på variablen ved at referere til *c
- og adressen på adressen til variablen ved at referere til c

Definere du en variabel som følgende:

char c;

Referere du til indholdet med c
- adressen med &c
- adressen på adressen med &&c
eller f.eks. adressen på c, ved at skrive &*&*&c  ;-)

overskueligt nok for dig??

Avatar billede dmk Nybegynder
09. november 2000 - 14:45 #3
Hvad er det du vil gøre?

char* nme=\"test\";
char* tmp_nme;
tmp_nme=nme;
// sætter tmp_nme=\"test\";
*tmp_nme=*nme;
// sætter første tegn i tmp_nme = første tegn i nme
**tmp_nem // Ulovlig assign! Du kan ikke tage indholdet af noget der ikke er en pointer!

char** tmp_nme;
*tmp_nme=nme;
sætter *tmp_nme =\"test\";
**tmp_nme=*nme;
// sætter første tegn af *tmp_nme lige med første tegn i nme

DMK
Avatar billede miclarsen Nybegynder
10. november 2000 - 01:13 #4
Du kan udenvidere sætte to pointere lig hinanden, hvis de er af samme type.

char *a, *b;
a=b;

Det der sker er at *a bliver sat til at pege på det samme som *b peger på.

Miclarsen
Avatar billede devia Nybegynder
10. november 2000 - 02:57 #5
miclarsen: Forkert!

*a og *b er i dit tlfælde lig med _indholdet_ af henholdsvis a og b - og ikke adressen på a og b  ;-)

Avatar billede miclarsen Nybegynder
10. november 2000 - 09:42 #6
Det har du selvfølgelig ret i.
Men det virker stadig.

Avatar billede devia Nybegynder
10. november 2000 - 09:47 #7
Ja, selvfølgelig - det var jo kun forklaringen der ikke stemte overens med eksemplet :)

Anyways,
jackonlinux << har du fundet ud af det? eller skal du have mere info ?
Avatar billede jackonlinux Nybegynder
11. november 2000 - 23:44 #8
Undskyld ventetiden - jeg må lige se nærmere først..

Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester