Transmission de tableau dynamique d'objets
Salut,
J'ai un problème en utilisant un tableau d'objets.
Je dois lire un fichier texte contenant des données et créer un certain nombres d'objets en fonction de ce que je trouve dans ce fichier. Je ne connais donc pas la taille de mon tableau à l'avance. Je crée donc une référence vers un objet dans le main, je la transmet à ma fonction qui analyse le fichier et crée le tableau de la taille souhaitée. Cette dernière fonction alloue la place nécessaire et crée le tableau d'objets. Mais je n'arrive pas à comprendre pourquoi je n'arrive pas à accéder à mes objets après cette fonction dans le main(). J'utilise pourtant bien l'opérateur new.
Pour plus d'information, merci de jeter un oeil au sources ci-jointes (volontairement raccourcies).
Merci par avance de votre aide,
Lau
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
using namespace std;
class FrameCameraParams {
private:
double focalLength;
public:
FrameCameraParams();
void setFocalLength(double f);
double getFocalLength();
};
FrameCameraParams::FrameCameraParams()
{
focalLength=0;
}
void FrameCameraParams::setFocalLength(double f)
{
focalLength=f;
}
double FrameCameraParams::getFocalLength()
{
return focalLength;
}
void parseCameraFile( FrameCameraParams* framesCameraParams)
{
framesCameraParams=new FrameCameraParams[5];
framesCameraParams[0].setFocalLength(37.);
cout << framesCameraParams[0].getFocalLength() << endl;
cout << framesCameraParams[1].getFocalLength() << endl;
}
int _tmain(int argc, _TCHAR* argv[]) {
FrameCameraParams* frames=NULL;
parseCameraFile( frames); // ici tout fonctionne bien
cout << (frames[0]).getFocalLength() << endl; // Cet appel plante...
return 0;
} |