ich übergeb eine Pointer muss ich für den Pointer speicher allocieren wenn er schon speicher hat?



  • Hallo,

    ich hab da eine Frage ich übergebe einen Pointer fuer den ich Speicher allociert habe
    an eine andere Funktion in einer andern klasse fülle den Pinter mit werten und liefer in zurück
    muss ich für den Pointer in der übegebenen Funktion auch speicher allokieren oder nicht???

    danke schon mal im voraus Thomas 82

    void attributs(void)
    {
       int lange =10;
       double* locBuffer;
    
       class1 a;
    
       locBuffer= new double[10*sizeof(double)];
    
       locBuffer = a.funkt1(locBuffer,laenge);
    
    }
    
    double* class1::funkt1 (double* externalBuffer,int len)
    {
    
       // externalBuffer=new double[(len)*sizeof(double)];  //muss ich hier speicher allokieren?
                                                            /funktionieren tut es auch ohne speicher allokieren
       memcpy(externalBuffer,_ElemBuff,(len)*sizeof(double));
       return(externalBuffer);
    
    }
    


  • Morgen,

    das ist natuerlich nicht noetig.

    mfg
    v R



  • Du musst den Pointer nichtmal zurückgeben, da du den Pointer ja schon hast und in den Speicher des Pointers schreibst.

    void attributs(void)
    {
       int lange =10;
       double* locBuffer;
    
       class1 a;
    
       locBuffer= new double[10*sizeof(double)];
    
       a.funkt1(locBuffer,laenge);
    
    }
    
    void class1::funkt1 (double* externalBuffer,int len)
    {
       memcpy(externalBuffer,_ElemBuff,(len)*sizeof(double));
    //   return(externalBuffer);
    
    }
    

    Das reicht.



  • Das ist ja super danke euch


Anmelden zum Antworten