Dynamische Redimensionierung von Array´s



  • Nabend ,
    hier erstmal meine Klasse

    class Dimensionen
    {
    private:
        int zeilen;
        int spalten;
        int *meinarray[1];
    
    public:
    
        Dimensionen(int z,int s)
        {
            zeilen = z;
            spalten = s;
    
            *meinarray = new int[zeilen * spalten];
    
        }
    
        int zeilensumme(int zeile);
        int spaltensumme(int spalte);
        void zufallszahlen();
        void usereingabe();
    
    };
    

    ich habe im laufe meines programmes mitbekommen das ich leider wirklich nur einen Wert in

    meinarray
    

    reinschreiben kann, versuche ich mehr zu schreiben, schmiert mir das programm ab. Jetzt schlussfolgere ich, dass die redimensionierung in meinem Konstruktor nicht hinhaut. Könnt ihr mir sagen was ich da falsch mache und wie ich es besser machen kann?



  • naja...
    zu allererst:

    std::vector <std::vector <int> > Array;
    

    Würde wahrscheinlich genau das machen, was du willst - ma abgesehen davon, dass man jz so was machen könnte (muss man ja aber nicht):

    %  1   2   3   4   5
    1  --------------
    2  ----------
    3  --------------
    4  --------------
    5  ------------------
    
    class Dimensionen
    {
    private:
        int zeilen;
        int spalten;
        int *meinarray[1];//Oo Wie wäre es mit "int *meinarray;" ?
    }
    
    public:
        Dimensionen(int z,int s)
        {
            zeilen = z;
            spalten = s;
    //1. was passiert mit dem alten meinarray? Oo -> auf nen anderen pointer nen new, dann kopieren und dann delete
    //2. noch verhasster realloc / malloc
            *meinarray = new int[zeilen * spalten];
    //3. meinarray = new int[z*s];
    //oder? ^^
        }
    
        int zeilensumme(int zeile);
        int spaltensumme(int spalte);
        void zufallszahlen();
        void usereingabe();
    };
    

    bye ^^



  • ok alles klar...ja ich weiß das es mit vector geht...wollte mich halt einfach mal mit array probieren 😉 daher...die vectoren sind schon geiler aber mein versuch sollte halt mit array laufen


Anmelden zum Antworten