Großes Array von Pointern auf Objekte?



  • Ich habe folgendes Problem, ich möchte ca. 2500 Pointer auf eine Klasse erstellen, erhalte aber immer Speicherzugriffsfehler (Heap zu klein).
    Bei einfachen Typen wie int oder Strukturen würde ich es ja so machen:
    int *meinzeiger = new int[2500];
    aber bei Klassen geht das ja nicht...
    Was also soll ich tun? Habt ihr 'ne Ahnung, oder bin ich einfach nur zu blöd? 😉



  • class Test
    {
    
    };
    
    Test *Array = new Test[2500];
    

    Warum sollte das nicht gehen?

    EDIT:Codetags falsch



  • Bushmann schrieb:

    Ich habe folgendes Problem, ich möchte ca. 2500 Pointer auf eine Klasse erstellen, erhalte aber immer Speicherzugriffsfehler (Heap zu klein).

    Hmmm? 10 kB sollen nicht auf deinen Heap passen? Was ist das denn für ne Plattform?



  • 10kb? woher weißt du wie groß meine klasse ist ^^

    class Test
    {

    };

    Test *Array = new Test[2500];

    Warum sollte das nicht gehen?

    weil ich 'nen Konstruktor hab

    Beispiel oben:
    Test::Test( int irgendwas ){};

    ->
    no matching function for call to `Test::Test()'
    candidates are: Test::Test(const Test&)
    Test::Test(int)



  • Hi,

    dann pack doch Deine Klasse in einen vector rein.

    std::vector<Test> Array(2500);
    

    grüße Con@n



  • Con@n schrieb:

    Hi,

    dann pack doch Deine Klasse in einen vector rein.

    std::vector<Test> Array(2500);
    

    grüße Con@n

    Da bekommt er die selbe Meldung! Wenn dann

    std::vector<Test *> Array(2500);
    

    oder einfach jede Instanz einzeln mit push_back in den Vektor packen.


Anmelden zum Antworten