783492jld Skrevet 7. april 2008 Del Skrevet 7. april 2008 Hei! Hvordan lager jeg en funksjon som lager et nytt objekt og samtidig legger en pointer i en liste? Mitt problem er at når jeg skal lage et nytt object må jeg lage navnet til objektet. Lenke til kommentar
DeadManWalking Skrevet 7. april 2008 Del Skrevet 7. april 2008 Blir det ikke bare noe sånt ca? #include <iostream> using namespace std; int main() { int ptrList[10]; int *ptrInt = new int; ptrList[0] = *ptrInt; return 0; } Lenke til kommentar
783492jld Skrevet 7. april 2008 Forfatter Del Skrevet 7. april 2008 Tusen takk! Nå fikk du satt meg på riktig spor. Lenke til kommentar
Roptaty Skrevet 7. april 2008 Del Skrevet 7. april 2008 Blir det ikke bare noe sånt ca? #include <iostream> using namespace std; int main() { int ptrList[10]; int *ptrInt = new int; ptrList[0] = *ptrInt; return 0; } Nei. Du allokerer riktignok fra free store/heap, men du lagrer her innholdet i minneadressen, og ikke minneadressen. Et riktig eksempel ville vært: int* ptrList[10]; int* ptrInt = new int(0); // initialisere int til 0 ptrList[0] = ptrInt; Denne løsningen har endel buts... f.eks du må holde rede på hvor mange objekter du har i lista samt. forhindre at den vokser over allokert størrelse, samt holde rede på hvor stor den er. Her bør du heller vurdere å bruke en std::vector eller std::list. Lenke til kommentar
DeadManWalking Skrevet 7. april 2008 Del Skrevet 7. april 2008 Det skal sies at jeg sa sånn ca. Lenke til kommentar
_vamecum Skrevet 7. april 2008 Del Skrevet 7. april 2008 Dette er da slettes ingen liste. bruk noe alla std::list<int*> myList; myList.push_back(new int(42)); Lenke til kommentar
Roptaty Skrevet 8. april 2008 Del Skrevet 8. april 2008 Nå er strengt talt en liste en kolleksjon/samling av flere objekter/enheter, og det er det jo i en array. Bruk av en std::list til denne aktuelle problemstillingen er en bedre løsning enn en array. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå