c++ Struct einer Funktion als Zeiger übergeben

Diskutiere mit über: c++ Struct einer Funktion als Zeiger übergeben im Mac OS X Entwickler, Programmierer Forum

  1. steffenmauch

    steffenmauch Thread Starter MacUser Mitglied

    Beiträge:
    28
    Zustimmungen:
    0
    Registriert seit:
    02.09.2005
    Hallo,
    also ich hab ein kleines Problem.
    Mein Fh-Prof möchte nicht, dass ich mein Struct global definiere und so die Daten speichere.
    Er will jedoch, dass ich es per Call by reference mache.
    Doch leider hab ich im Moment kein Plan wie ich das Anstellen soll.
    Weil ich schaff es zwar die Adresse zu übergeben, jedoch wenn ich dann per Punktoperator auf die einzelnen Werte zugreifen möchte, geht es nicht.
    Ich hoffe man kann es verstehen,

    Danke,
    Steffen Mauch

    Code:
    #include <iostream>
    using namespace std;
    
        struct help {
    		char h;
    		char e;
    		char f;
    	};
    	
    void test(help *s){
    	*s.h='1';
    	cout << s;
    }
    
    
    
    int main (int argc, char * const argv[]) {
    	struct help neu;
    	cout << &neu << endl;
    	test(&neu);
    			
        return 0;
    }
    
     
  2. below

    below MacUser Mitglied

    Beiträge:
    13.882
    Zustimmungen:
    1.086
    Registriert seit:
    15.03.2004
    Code:
    (*s).h='1';
    EDIT: oder natürlich

    Code:
    s->h='1';
     
  3. steffenmauch

    steffenmauch Thread Starter MacUser Mitglied

    Beiträge:
    28
    Zustimmungen:
    0
    Registriert seit:
    02.09.2005
    Vielen Dank,

    Nun kann ich endlich die Aufgabe fertig lösen.

    Steffen Mauch
     
  4. Ulfrinn

    Ulfrinn MacUser Mitglied

    Beiträge:
    6.676
    Zustimmungen:
    586
    Registriert seit:
    30.01.2005
    Ich würde die Struktur in dem Fall übrigens in eine ordentliche Typendefinition packen (typedef struct { … } help_t). Ist aber nur meine persönliche Meinung. ;)
     
  5. TenFan

    TenFan Banned

    Beiträge:
    38
    Zustimmungen:
    0
    Registriert seit:
    30.12.2006
    Ich würde das ganze so machen:
    Code:
    #include <iostream>
    using namespace std;
    
    struct help
    {
    	char h;
    };
    
    void test (help &s)
    {
    	s.h = '1';
    	cout << &s << endl; //in Deinem Fall wird hier auch nur die Adresse angezeigt
    }
    	
    
    int main ()
    {
    	help neu;
    	test (neu);
    	cout << neu.h;
        return 0;
    }
    
    Sowohl bei der Übergabe von Zeigern als auch von Referenzen handelt es sich um Call by reference. Die direkte Übergabe von Referenzen macht aber den Code einfacher.

    Ich will nicht unken, aber die Attribute Deiner Stuktur sind immer noch global deklariert. Nicht dass dein Prof wieder tobt :rolleyes:
     
Die Seite wird geladen...
Ähnliche Themen - c++ Struct einer Forum Datum
Suche einfache IDE für C Mac OS X Entwickler, Programmierer 13.08.2016
C++ Programm von Windows zu Mac? Mac OS X Entwickler, Programmierer 05.05.2016
Indirektes Erzeugen einer Klasseninstanz und Aufruf einer Methode Mac OS X Entwickler, Programmierer 11.12.2015
Buchtip für C++ Mac OS X Entwickler, Programmierer 13.10.2015
C: Array in Funktionsprototyp Mac OS X Entwickler, Programmierer 26.08.2015

Diese Seite empfehlen

Benutzerdefinierte Suche