Frage zu Pointer

Posted By: Alexander

Frage zu Pointer - 11/05/08 14:03

Hi Leute, ich habe mal eine kurze Frage zu Pointer.

Ich probiere im Moment folgendes:

Code:
ENTITY* Feind;

action Gegner
{
    ...
    Feind = me;
    ...
}


PANEL* string_pan =
{
    layer = 15;
    digits = 170,  10,  6, _a4font, 1, Feind.x;
    digits = 170,  30,  6, _a4font, 1, Feind.y;
    digits = 170,  50,  6, _a4font, 1, Feind.z;
    flags = OVERLAY, VISIBLE;
}


Jetzt sagt mir der Compiler aber, er kennt den Pointer Feind nicht. Wo ist das Problem?
Posted By: Uhrwerk

Re: Frage zu Pointer - 11/05/08 14:12

Also der erste Teil mit der Definition und der action ist in Ordnung. Was Du dann in dem Panel tust ist gefährlich, denn der Anfangswert von Feind ist undefiniert. Feind.x wird also im besten Fall einen völlig falschen Wert enthalten, im schlechtesten Fall einfach abschmieren. Du kannst feind natürlich mit NULL initialisieren, dann kan Feind.x aber trotzdem nicht evaluiert werden. Workaround. Definiere drei Variablen FeindX, FeindY und FeindZ und schreibe dann in die action Gegner:

Code:
while(1)
{
  FeindX = Feind->X;
  FeindY = Feind->Y;
  FeindZ = Feind->Z;
}

Du kannst dann in deinem Panel FeindX usw. verwenden. Wie genau war denn die Fehlermeldung des Compilers?
Posted By: Alexander

Re: Frage zu Pointer - 11/05/08 15:48

Ja, du hast recht. Deine Beschreibung hat genau auf das Problem gepasst. Mal ist er gestartet und abgestürzt, mal hat der Compiler gesagt, er kennt den Pointer Feind nicht. Danke für die Hilfe. wink
© 2023 lite-C Forums