Avatar billede codemon Nybegynder
21. maj 2002 - 22:43 Der er 11 kommentarer og
1 løsning

Array af pointere med dynamisk størrelse

Hvordan allokerer jeg plads til et array af pointere når størrelsen skal gives med en variabel.
Avatar billede laffe Nybegynder
21. maj 2002 - 22:46 #1
I CBuilder kan du bruge en TList
Avatar billede laffe Nybegynder
21. maj 2002 - 22:47 #2
En TList er en liste af Pointere til TObjects.
Avatar billede laffe Nybegynder
21. maj 2002 - 22:49 #3
Dine elementer skal bare være en nedarvning af TObject.
Avatar billede laffe Nybegynder
21. maj 2002 - 22:52 #4
class TMyClass : public TObject
{
public:
int MyNumber;

TMinClass();
int GetNumber();
}


TList *L;

L = new TList();    // Alloker dynamiske liste

TMyClass *C;       

C = new TMyClass(); // Alloker Element
C->MyNumber = 100;

L->Add(C);        // Indsæt element i liste.
Avatar billede codemon Nybegynder
21. maj 2002 - 23:00 #5
laffe jeg bruger ikke CBuilder, og istedet for TList kunne jeg jo ligeså godt bruge en vector, den kan indeholde enhver type. Jeg vil ikke bruge en container klasse.

Jeg kan lave array af pointere med
MinKlasse test[10];  // 10 eller konstant

Hvis jeg bruger new bliver arrayet af objekter, ikke pointere
MinKlasse *test = new MinKlasse[size]; // Samtidig oprettes 10 MinKlasse objekter

Hvad gør jeg galt?
Avatar billede codemon Nybegynder
21. maj 2002 - 23:01 #6
ups. ikke MinKlasse test[10]; men MinKlasse *test[10];
Avatar billede laffe Nybegynder
21. maj 2002 - 23:04 #7
Test[10] er da ikke dynamisk. Der kan jo kun være 10 MinKlasse objecter i dit array.
Avatar billede laffe Nybegynder
21. maj 2002 - 23:05 #8
Alternativet ville være, at implementere en linket liste af pointere (pointere til Classer).
Avatar billede chries Nybegynder
22. maj 2002 - 08:28 #9
int x = 10;
    int **p = new int*[x];

    p[0] = new int(18);
Avatar billede chries Nybegynder
22. maj 2002 - 08:28 #10
uskift int med det du har lyst til
Avatar billede chries Nybegynder
22. maj 2002 - 08:28 #11
for p altså =) ikke x.
Avatar billede codemon Nybegynder
22. maj 2002 - 11:03 #12
Mange tak, det var jo let nok ( -):)), jeg tror jeg har prøvet at sætte den asterix overalt og kombinerer dem som en sindsyg.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester