Invalid array assignment



  • Ja ich bin in C++ stark eingerostet, nur schon mal vorweg 😃

    Trotzdem hier mein Problem:
    Ich habe folgende Codezeile:

    startLambdaSet = *CreateLambdaSet(randomSet.empty);
    

    startLambdaSet:

    LambdaSetAT startLambdaSet,
                        stopLambdaSet;
    

    CreateLambdaSet:

    LambdaSetAT CreateLambdaSet(real32 value)
        {
            // generate random set for different labmdas
            LambdaSetAT lambdaSet;
    
            for(int LambdaIDX=0;LambdaIDX<MEAmaxWaveLen;LambdaIDX++)
            {
                lambdaSet[LambdaIDX] = value + 0.02 * static_cast<real32>(LIBRandom::Random()) * static_cast<real32>(LambdaIDX);
            }
    
            return lambdaSet;
        }
    

    LambdaSetAT:

    typedef real32 LambdaSetAT[meadef::MEAmaxWaveLen];
    

    real32:

    typedef     float               real32;
    

    beim kompillieren entsteht der Fehler "invalid array assignment", ich bin leider relativ ratlos was da falsch sein soll...so weit ich das sehen kann handelt es sich beim Rückgabewert der Funktion um genau das selbe Array wie das der Variabel...was übersehe ich da?



  • Du darfst weder Arrays von Funktionen zurückgeben noch Arrays dynamisch zuweisen. Wenn du das so umsetzen willst, benutze ein struct mit einem Array fester Größe drin.


Anmelden zum Antworten