PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pointerfragen


che g
2003-11-08, 10:17:58
Hiho,

Ich habe:

class CTextureManager
{

private:

TEXTURE *Texture;
int NumberOfTextures;
int LoadedTextures;
int TextureColorDepth;
[...]
};

struct TEXTURE
{
char *Name;
unsigned int ID;
};


Im Constructor wird ersteinmal für 20 Texturen Speicher allokiert. (Wird später noch dynamisch angepasst)

Hier ein Ausschnitt aus der LoadTexture() funktion:

int len = strlen(name) + 1;
this->Texture[CurrentTex].Name = new char[len];
sprintf(this->Texture[CurrentTex].Name, name);

und aus dem Destructor:

for (int i=0; i<this->LoadedTextures; i++)
{
delete [] this->Texture[i].Name;
}


Gestern hatte ich genau den gleichen Code, da hängte er sich im Destructor (offensichtlich beim Freigeben vom Speicher für Texure.Name) auf. Heute funktioniert alles...

Ich frage weil ich mir unsicher bin ob diese Geschichte mit dem dynamischen Speicher IN einem dynamischen Speicher (TEXTURE *Texture wird dynamisch mit new geholt und Texture.Name auch) so richtig ist.

MfG

Gast
2003-11-08, 13:51:04
Daß in einem dynamisch angeforderten Speicherbereich ein Pointer auf einen anderen dynamsch angeforderten Speicherbereich steht, ist völlig OK.

che g
2003-11-08, 16:45:36
Dankeschön :)