Arrays zu einem Array zusammenfassen



  • Hallo,

    ich bekomme durch eine Schleife viele Arrays. Diese Arrays möchte ich zu einem zusammenfassen. Folgenden Code habe ich implementiert.

    //mein neues Array was alle Arrays aufnimmt deklarieren und Speicherplatz anfordern
    float *newArray  = NULL;
    newArray         = new float[];
    
    int sizeMyArray  = 0;
    int sizeNewArray = 0;
    int start        = 0;
    
    for( ... )
    {
        getData(myArray,sizeMyArray);
    
        int start = sizeNewArray;
        sizeNewArray = sizeNewArray + sizeMyArray;
    
        for(int i=start; i<sizeNewArray; i++)
        {
            newArray[i] = myArray[i];
        }
    }
    
    //Speicherplatz wieder freigeben
    delete[] newArray;
    newArray = NULL;
    

    Ich habe ein Programmabsturz. Woran kann das liegen? Verursache ich ein overflow ? Ich kanns mir nicht erklären.
    Danke schon mal. 🙂 🙂 🙂



  • Äh, wo wird newArray Speicher zugewiesen?



  • so wie du das gemacht hast klappt schonmal gar nix

    ausserdem ist die hälfte unklar wie zum beispielw as myArray ist...

    machs einfach mit vectoren da sparste dir viel arbeit

    vector< vector<float> > AllumfassendesArray;  // eventuell auch einen zeiger auf vector<float>, je nachdem halt
    

    das ist ein 2 dimensionales array, sowas suchst du ja...


  • Mod

    Ich tippe mal darauf, dass myArray nur sizeMyArray Elemente hat. Dann wird der Zugriff myArray[i] stehts außerhalb des ARrays erfolgen. Es ist nicht ganz erkennbar, wieso die Daten nicht gleich im großen Array abgelegt werden.

    int N = ...
    int sizeMyArray  = 0;
    int sizeNewArray = sizeMyArray*N;
    float* newArray  = new float[sizeNewArray];
    int start = 0;
    for( ... )
    {
        getData(newArray+start,sizeMyArray);
        start += sizeMyArray;
    }
    

Anmelden zum Antworten