Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

Code probleempje ?

Anoniem
capt.501
3 antwoorden
  • Ik doe ongeveer het volgende

    [code:1:70e41847b5]
    void bladiblah(int *blkcnt)
    {
    printf("%i
    ",blkcnt);
    *blkcnt++;
    printf("%i
    ",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
    ",blkcnt);
    getal=*blkcnt;
    getal++;
    *blkcn=getal
    printf("%i
    ",blkcnt);
    }
    [/code:1:70e41847b5]

    Dat werkt het hele spul prima.
    Ben ik nouw gek ?

    Ohh ja, gebruikte compiler is gcc 2.95.3



  • Ik heb het even uitgetest en als ik je functie zo aanpas:
    [code:1:8ccd277c79]void blahdiblah(int *blkcnt)
    {
    printf("%i
    ",*blkcnt);
    (*blkcnt)++;
    printf("%i
    ",*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.

  • Tja Pascal, da's nu associativiteit ;) Heb je met functionele progtalen niet!

    Toch maar LISP leren? :lol:

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.