Avatar billede elster Nybegynder
21. maj 2001 - 22:50 Der er 2 kommentarer og
1 løsning

Pointer objekt i pointer array

Jeg har lavet en klasse ved navn HashEntry.

I en anden klasse vil jeg oprette et dynamisk allokeret array, der indeholder pointere til objekter af HashEntry klassen.

Hvis jeg prøver at gøre nedenstående, virker det ikke:
--------------------------------------------------
int initialCapacity = 50;
HashEntry* table = new HashEntry[initialCapacity];
for (int i = 0; i < initialCapacity; i++)
    table[i] = new HashEntry();
--------------------------------------------------
Hvorimod det her virker fint:
--------------------------------------------------
HashEntry* temp[50];
for (int i = 0; i < 50; i++)
    temp[i] = new HashEntry();
--------------------------------------------------

Hvorfor er det nu lige at det ikke virker hvis array\'et bliver allokeret dynamisk?
Avatar billede jpk Nybegynder
22. maj 2001 - 08:15 #1
Øverst laver du et array af HashEntry objekter, nederst et array af HashEntry-pointere...
Avatar billede wisen Nybegynder
22. maj 2001 - 08:24 #2
Jeg mener, at syntaxen siger noget med at det \"expression\" der står i de hårde parenteser, skal være en integral type, og ikke en \"pointer\"... Det kan måske lade sig gøre vis du definerer \"initialCapacity\" som \"const\", men så er det stadig ikke dynamisk :)

Det korte og den lange er, at du ikke kan lave et dynamisk array. Du kan i stedet, alt efter din compiler/udviklingsmiljø bruge diverse datastrukturer, som f.eks. STL, selv lave en \"linked list\" osv...

/wisen
Avatar billede elster Nybegynder
22. maj 2001 - 09:56 #3
Ok, jeg håbede det kunne lade sig gøre, men så må jeg bare definere den som \"const\".
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