struct mit call by reference in einer funktion aufrufen



  • hallo,

    ich würde gern ein struct in meiner main funktion mit hilfe von referenzen in meiner nebenfunktion aufrufen.
    leider ist mir nicht ganz klar wie die funktionsschnittstelle aussehen muß 😡

    int funktion (??????)
       {
    	   pzeiger->i=123;
    	   ....
       }
    
       void main (void)
       {
    	   struct daten
    	   {
    		   int i;
    		   int n;
    	   };
    	   struct daten nummern;
               struct daten *pzeiger;
    
    	   funktion(???????);
       }
    

    für hilfe wäre ich dankbar 🙂



  • ich würde gern ein struct [...] in meiner nebenfunktion aufrufen.

    eigentlich willst du die adresse des "daten"-objektes an deine funktion uebergeben; die wiederum erhaelt dann einen pointer auf "daten" - dazu muss "daten" auch fuer "funktion()" bekannt sein:

    struct daten
       {
          int i;
          int n;
       };
    
       int funktion (struct daten *pzeiger)
       {
           pzeiger->i=123;
       }
    
       void main (void)
       {
           struct daten nummern;
    
           funktion(&nummern);
       }
    


  • danke für deine antwort 🙂

    aber sind die int im daten-struct jetzt nicht globale variablen ?

    mir wurde mal gesagt, dass globale variablen böse sind und sollten nur in notfällen benutzt werden 😉



  • die struct ist nur eine typen-definition.
    tatsaechliche daten existieren erst in dem moment, wo du wirklich eine variable dieses typs anlegst - das passiert bei dir aber erst in "main".



  • achso 🙂

    vielen dank für deine hilfe


Anmelden zum Antworten