Johantrax
Terugkerende gebruiker
- Lid geworden
- 18 okt 2006
- Berichten
- 1.268
Ik wil een object aanmaken in een aparte functie, om zo de code leesbaarder te kunnen houden. Nu weet ik dat je zeer voorzichtig moet zijn met de toestand van de heap enzo. En ik heb dus al wat testen uitgevoerd, maar ik kom er nog niet helemaal uit.
Deze code heeft als resultaat "gelukt", het resultaat dat ik dus ook wil krijgen.
Nu is het echter van essentieel belang dat ik in de mainfunctie een pointer kan gebruiken. Ik zou dus mijnobject als int* willen declareren.
Ik weet dat het best mogelijk is om bovenstaande code te gebruiken en na de init een pointer naar mijnobject aan te maken maar dat is niet mijn bedoeling.
Je zou op het eerste zicht verwachten dat onderstaande code wel zou werken, maar dit is wegens scope en heap dus NIET het geval
Hopelijk heeft iemand hier de geniale inval, over het detail dat ik aan het missen ben
--Johan
Deze code heeft als resultaat "gelukt", het resultaat dat ik dus ook wil krijgen.
Code:
#include <iostream>
using namespace std;
void init(int* i)
{
i = new int(4);
}
int main()
{
int mijnobject;
init(&mijnobject);
if (&mijnobject == NULL)
cout << "mislukt";
else
cout << "gelukt";
cin.get();
return 0;
}
Nu is het echter van essentieel belang dat ik in de mainfunctie een pointer kan gebruiken. Ik zou dus mijnobject als int* willen declareren.
Ik weet dat het best mogelijk is om bovenstaande code te gebruiken en na de init een pointer naar mijnobject aan te maken maar dat is niet mijn bedoeling.
Je zou op het eerste zicht verwachten dat onderstaande code wel zou werken, maar dit is wegens scope en heap dus NIET het geval
Code:
#include <iostream>
using namespace std;
void init(int* i)
{
i = new int(4);
}
int main()
{
int* mijnobject = NULL;
init(mijnobject);
if (mijnobject == NULL)
cout << "mislukt";
else
cout << "gelukt";
cin.get();
return 0;
}
Hopelijk heeft iemand hier de geniale inval, over het detail dat ik aan het missen ben

--Johan