Hallo!
Ich habe ein Problem mit einer Klasse und einer Funktion.
Die Klasse sieht so aus:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
|
class Bear
{
private:
bool Alive;
public:
bool ReturnAlive(void);
void ChangeAlive(bool State);
BITMAP **ItsImage;
};
|
Ich lade also ein Bild:
|
C-/C++-Quelltext
|
1
2
3
|
...
BITMAP *Image = load_bitmap("Bild.tga", 0);
...
|
Ich habe also einen Pointer auf eine BITMAP-Instanz.
Danach setzte ich einen Pointer auf diesen Pointer:
|
C-/C++-Quelltext
|
1
2
|
Bear bear;
bear.ItsImage = &Image;
|
Jetzt kommt mein eigentliches Problem!
Wenn ich mit der Funktion draw_sprite das Bild anzeigen will, sagt mir der Compiler, dass er den zweiten Parameter von BITMAP** nicht nach BITMAP* konvertieren kann.
|
C-/C++-Quelltext
|
1
2
|
// void draw_sprite(BITMAP *bmp, BITMAP *sprite, int x, int y)
draw_sprite(screen, bear.ItsImage, 0, 0);
|
bear.ItsImage ist ja ein Doppelpointer. Wie kann ich aber aus einem Doppelpointer einen normalen Pointer machen? Ich hab es schon mit type-casting probiert, nur stürzt das Programm dann immer ab.
Mfg