[c++] geheugen adressen

Pagina: 1
Acties:
  • 41 views sinds 30-01-2008

  • Lord_T
  • Registratie: Oktober 2000
  • Laatst online: 31-07 09:50
Hi, moet een copy maken van een pointer... maar niet van het geheugen adres maar van alle waardes enzo...

probleem:

pointer1 verwijst naar geheugen adres met 3 lijsten gevuld met pointers (laten we even aannemen pointer A in lijst1, pointer B in lijst 2 en pointer C in lijst 3).
Dan verwijst pointer A weer naar 2 andere lijsten waarvan er ook weer 1 gevuld is met pointers (pointers D) ... etc.
Dat verwijst dus continu naar elkaar door... en als ik een copy maak... dan pakt die het geheugen adres... das leuk, maar niet wat ik zoek. Punt is dat ik wat dingen wil veranderen in die lijsten (wat toevoegen en weggooien) en dan altijd mijn oorspronkelijke pointers nog kan terug roepen.

Nou weet ik dat je met een & normaal juist het geheugen adres pakt... maar hoe creeer ik een exacte copy zonder dus 1 voor 1 alle lijsten af te itereren en alles toe te kennen aan een nieuwe pointer?

ja ja... niet iedereen heeft dezelfde kennis... wees daarom ook eens gewillig en geef een antwoord op een vraag ;)


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

a) Licht eens toe wat je in godesnaam wil want hier is geen touw aan vast te knopen.
b) Code zou enorm daarbij helpen.
c) Ik vermoed subtiel dat je naar de functie memcpy op zoek bent.

Professionele website nodig?


  • Wilke
  • Registratie: December 2000
  • Laatst online: 08:39
Nee, hij wil een 'deep copy' van alle elementen in een lijst. Als ik het goed lees.

Edit: dus zonder voor elk element 'memcpy' handmatig aan te roepen enzo, idd :)

[ Voor 34% gewijzigd door Wilke op 09-09-2003 01:31 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Als je 50 losse elementen hebt gealloceerd in 50 losse pointers heb je idd 50 kopieerslagen nodig om 50 kopieen te maken.... maar gelukkig ben ik niet de enige die er niets van snapt 8)7

Professionele website nodig?


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
1 Wrap die lijsten in een object.
2 Voor de klasse van dat object overload je de copy constructor en de asignment operator. Zorg dat die de elementen waar ze naar wijzen ook kopieren.
3 Klaar.

Hint 1 : Alleen als de klasses geen pointers of references bevatten kun je een meberwise copy doen.
Hint 2 : Kijk uit voor self assignement.
Hi, moet een copy maken van een pointer... maar niet van het geheugen adres maar van alle waardes enzo...
Je wilt dus geen kopie maken van de pointer, maar van de objecten waar de pointer naar toe wijst.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Voor zover ik het begrijp wil je gewoon een boompje maken die een exacte kopie is van je originele boom ?
Dan zal je toch elk "bladje" van de boom moeten aflopen om een kopie te nemen, anders blijf je met de pointers zitten naar je originele waarde, normaal gezien kan je recursief werken (als ik snap wat je bedoeld ten minste) en zal het niet zolang duren voor het schrijven

  • 4VAlien
  • Registratie: November 2000
  • Laatst online: 02-08 23:13

4VAlien

Intarweb!

Als je een linked list wil editen hoef je toch alleen de nodes die om degene die je weg haalt zitten te weten?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Als je een linked list wil editen hoef je toch alleen de nodes die om degene die je weg haalt zitten te weten?
Hoe haal jij uit die beschrijving dat het een linked list is? :?

Dit topic gaat in ieder geval nergens heen: van 5 reagerende mensen interpreteert iedereen het probleem anders. Deze quiz 'raad-het-probleem' gaat dus dicht, en Lord_T mag een voorstel voor een eventueel beter topic even aan mij mailen voordat ie 'm opent.

Professionele website nodig?

Pagina: 1

Dit topic is gesloten.