๐Ÿš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #6554

Re: pointer probleempke

#6554
From: JeroenV
Date: Sat, 07 Dec 2002 14:49
59 lines
2817 bytes
dominova wrote at za, 07 dec 2002 13:03:20 GMT:

<knip>
>  wijzig_pointer(pointer);
> 
<knip>
> 
> }
> int wijzig_pointer(int *pointer)
>  {
>   pointer=&getal1;
>   //return *pointer;
> 
>  }

Hier zit je fout. "pointer" in de functie is een lokale variabele in die 
functie, en bijgevolg een andere variabele als "pointer" in de main. Je 
kopi๏ฟฝert de waarde van de eerste variabele in de 2de, een call by value. In 
dit geval heb je een call by reference nodig, een pointer naar een pointer 
dus. Dit is moeilijk uit te leggen, daarom wat code, hopelijk begrijp je me 
dan. (BTW, de printf-instructie is eigenlijk C, maar ik weet niet juist hoe 
de cout-functie ineen zit. Het zou wel moeten compilen met een C++ 
compiler.)

void wijzig_pointer (int **); // let op de 2 *

int getal1 = 5;

void main()
{
  int getal2 = 10, *pointer1;
  pointer1 = &getal2;

  wijzig_pointer(&pointer1); // geef het adres van pointer1 mee

  // druk de inhoud van pointer1 af
  printf("de waarde van pointer is: %d",*pointer1);

}

void wijzig_pointer(int **pointer2)
 {
/* de inhoud van pointer2 (die naar pointer 1 verwijst) wordt het adres van
 * getal1. Aangezien pointer2 het adres bevat van pointer1, zal pointer1 
 * gewijzigd worden.
 */

  *pointer2=&getal1;
 }

Wat ook had gewerkt, is de pointer globaal declareren (boven de main dus). 
De functie had dan geen parameters nodig.

Pointers zijn moeilijk, maar vooral de moed niet opgeven. Eenmaal je het 
door hebt, verleer je het niet meer.

-- 
Mvg, JeroenV
Xnews instellen en gebruiken: <url:http://users.pandora.be/jvaes/xnews/>
Technical Details
Message-ID: <Xns92DDA11897E0Djeroenvpandorabe@195.130.132.65>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-06!sn-xit-09!supernews.com!iad-peer.news.verio.net!news.verio.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
References: <skmI9.39670$Ti2.6375@afrodite.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII
X-Google-Thread: 107324,783c1464dae403ba
X-Google-Attributes: gid107324,public
X-Google-Thread: fcea4,783c1464dae403ba
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-12-07 06:49:42 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-06!sn-xit-09!supernews.com!iad-peer.news.verio.net!news.verio.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
Newsgroups: be.comp.programming,nl.comp.programmeren
Subject: Re: pointer probleempke
From: JeroenV <jeroenv@pebbels.be.remove>
References: <skmI9.39670$Ti2.6375@afrodite.telenet-ops.be>
Organization: Fuckit Inc.
Message-ID: <Xns92DDA11897E0Djeroenvpandorabe@195.130.132.65>
User-Agent: Xnews/5.04.25
X-Face: #Es3HcENsp.-3wa!HM)a\e~J'Y1N?>-EnuezgPkutT\313BV%o#2J?v]}6WHS.n-(r|C^x&pd'[MR#P}rIXef]:r}$-6Q8Va35l>~U(dId:c{XO%5~<.@:l$R/\T7utt#'1-{Q\p15G
Lines: 59
Date: Sat, 07 Dec 2002 14:49:40 GMT
NNTP-Posting-Host: 213.224.36.29
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1039272580 213.224.36.29 (Sat, 07 Dec 2002 15:49:40 MET)
NNTP-Posting-Date: Sat, 07 Dec 2002 15:49:40 MET