parameterübergabe



  • Alexo schrieb:

    ok, danke devil
    und wie kann ich den inhalt kopieren?

    Wieso arbeitest du nicht gleich mit dem übergebenen Zeiger ?

    Ansonsten könntest du noch dereferenzieren :
    *pointer = *anderer_pointer;
    mit * greifst du auf den Inhalt zu.

    Allerding weiss ich nicht, was BODY ist, evtl. gibts da Probleme.

    Devil



  • Alexo schrieb:

    ok, danke devil
    und wie kann ich den inhalt kopieren?

    Ich bin nicht devil.

    Code-Hacker



  • Bashar schrieb:

    C++ arbeitet mit Call-by-Value, d.h. es werden grundsätzlich Kopien der Argumente übergeben. Es gibt 2 Auswege, einmal Pointer und einmal Referenzen.

    // 1. Übergabe per Pointer
    void importfile(BODY** b) { *b = ... }
    
    // 2. Übergabe per Referenz
    void importfile(BODY*& b) { b = ... }
    

    Die Antwort wurde doch bereits gegeben. Nur noch mal Zitiert falls dies (wegen meinem Unverständnis für die Frage, habs halt nich kapiert O🤡 untergegangen ist.



  • Wenn es trotz meiner Antwort nicht funktioniert, muss der Fehler in der Funktion importfile liegen. Poste die doch mal, wenn sie nicht zu lang ist.



  • Bashar die funktion hat hat vorher funktioniert, aber das parameter was ich übergeben möchte, dass ist ein default-parameter, liegt es vielleicht daran?
    den der compiler meckert nur deswegen.



  • Entweder stell ich mich besonders blöd an (mag sein, Bashar wusste auch vorhin die Antwort) oder ich benutze meine Kristallkugel nicht richtig.

    Ums Umgangssprachlich auszudrücken:

    häää ?

    Eventuell hilft:

    void foo(int para1,int para,....,BODY ** fBody = NULL)

    weiter. Was mault der Compiler denn ?

    P.s.: Magst Dich nich registrieren ? 🤡 Hat nur Vorteile 🤡



  • schau knuddi, ich hab auf dich gehört und mich angemeldet.
    Knuddi sag mir mal jetzt
    wie mach die funktionaufruf?

    ich habe ja
    BODY* body = NULL;

    und rufe die
    funktion so auf:

    importfile(par1,par2,par3, body);
    und kriege fehler meldung dafür:

    error C2664: 'importFile' : cannot convert parameter 4 from 'class BODY *' to 'class BODY ** '



  • Ah thx für die Anmeldung 🤡 So schaut das besser aus 🤡

    thx für die Fehlermeldung, nu weiß ich auch was Du meinst.

    Versuchs mal so:
    importfile(par1,par2,par3, &body);

    Du brauchst ja nun den Zeiger auf den "Zeiger" 🤡

    p.s.: Du heisst nicht zufällig Hoffmann o.ä. ? Knuddi werd ich extrem selten genannt ;o)



  • Die Adresse des Zeigers übergeben, nicht den Zeiger selbst: &body

    Devil



  • Hey Danke leute
    Warum den nicht gleich so?? 😉
    Nein ich heisse net Hoffman, knuddi. Ich nehm einfach für alles ne abkürzung, gewohnheit.



  • [ot]Ja die meisten kürzen es ab mit "Knuddl" 🤡[/ot]


Anmelden zum Antworten