Om een netwerk te representeren heb ik de klasse arc gemaakt. Deze klases bevat 3 (short) integers. Ik zou nu graag een array van arcs maken, die bij voorkeur na elkaar in het geheugen staan, zodat *(&Arc[1] + 1) naar Arc[2] verwijst. Een manier om dit te doen is eerst een rijtje 'lege' arcs aanmaken en deze daarna 'vullen' met replacement new:
arc Arcs[10];
for(int i = 0; i < 10; i++)
new (&Arcs) arc(1,2,3);
Dit werkt echter alleen als ik een default constructor maak, dus eentje zonder parameters. Dit wil ik echter eigenlijk liever niet, omdat ik dan in de rest van mijn programma zou moeten testen of de variabelen geinitializeerd zijn.
Ik ben daarom benieuwd of er ook een andere manier is om dit te doen. Ik wil liever niet een array van pointers maken, omdat het dan moeilijker is om van de ene naar de andere arc te gaan, en omdat het geheugengebruik dan 1.5 keer zo groot wordt. (Dit is problematisch omdat mijn netwerk nogal groot is!
)
[Edit]
In c bestond de functie malloc(), die zou doen wat ik zou willen! Is die functie nog beschikbaar in c++? En hoe zou je het daarme kunnen oplossen?
[/Edit]
Ik hoop dat iemand me kan helpen!
arc Arcs[10];
for(int i = 0; i < 10; i++)
new (&Arcs) arc(1,2,3);
Dit werkt echter alleen als ik een default constructor maak, dus eentje zonder parameters. Dit wil ik echter eigenlijk liever niet, omdat ik dan in de rest van mijn programma zou moeten testen of de variabelen geinitializeerd zijn.
Ik ben daarom benieuwd of er ook een andere manier is om dit te doen. Ik wil liever niet een array van pointers maken, omdat het dan moeilijker is om van de ene naar de andere arc te gaan, en omdat het geheugengebruik dan 1.5 keer zo groot wordt. (Dit is problematisch omdat mijn netwerk nogal groot is!
[Edit]
In c bestond de functie malloc(), die zou doen wat ik zou willen! Is die functie nog beschikbaar in c++? En hoe zou je het daarme kunnen oplossen?
[/Edit]
Ik hoop dat iemand me kan helpen!
Laatst bewerkt: