Ga naar inhoud

Code probleempje ?


Aanbevolen berichten

Ik doe ongeveer het volgende [code:1:70e41847b5] void bladiblah(int *blkcnt) { printf("%i\n",blkcnt); *blkcnt++; printf("%i\n",blkcnt); } void main() { int tellertje=25; blahdiblah(&tellertje); } [/code:1:70e41847b5] Gaat me dat hele ding over de zeik ! Pas ik de functie als volgt aan, [code:1:70e41847b5] void bladiblah(int *blkcnt) { int getal; printf("%i\n",blkcnt); getal=*blkcnt; getal++; *blkcn=getal printf("%i\n",blkcnt); } [/code:1:70e41847b5] Dat werkt het hele spul prima. Ben ik nouw gek ? Ohh ja, gebruikte compiler is gcc 2.95.3
Link naar reactie
Ik heb het even uitgetest en als ik je functie zo aanpas: [code:1:8ccd277c79]void blahdiblah(int *blkcnt) { printf("%i\n",*blkcnt); (*blkcnt)++; printf("%i\n",*blkcnt); }[/code:1:8ccd277c79] Dus met haakjes rond (*blkcnt) dan werkt hij goed. Blijkbaar heeft ++ een hogere prioriteit dan *, zodat eerst de pointer-waarde met een wordt verhoogd voordat de variabele op die geheugenlocatie wordt genomen.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...