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
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