"Empty Pointer in setProperties" macht keinen Sinn...

Posted By: xxxxxxx

"Empty Pointer in setProperties" macht keinen Sinn... - 05/01/11 18:11

Hallo,
ich hab folgendes problem: wenn ich diese drei zeilen code in mein script einfüge kommt beim starten die Meldung "Empty Pointer in setProperties"(die drei zeilen sind aber in der main), nur diese macht irgendwie keinen Sinn, weil alles definiert ist(man kann die entities sehen und naja, die vectoren werden ja hier definiert smirk ).
Code:
vec_set(last_rotate, Body2.pan);
vec_set(rotate, Body3.pan);
vec_sub(rotate, last_rotate);


Woran könnte es liegen???
xxxxxxx
Posted By: Uhrwerk

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/01/11 18:26

Vielleicht sind last_rotate oder rotate nicht richtig initialisiert, so dass Du Speicherbereiche überschreibst, die in setProperties verwendet werden?

Grundsätzlich finde ich Deine Frage aber etwas seltsam. Ich bekomme eine Fehlermeldung in Funktion A. Hier ist Code aus Funktion B. Wo ist der Fehler? Merkste was?
Posted By: rvL_eXile

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/01/11 18:26

du rufst das doch bestimmt nach dem level_load auf oder?
Dann setz mal ein wait(3); dazwischen... es kann sein, das die Engine probiert drauf zuzugreifen obwohl die Entitys noch nicht erstellt wurden sind...

Gruß Sebastian
Posted By: Superku

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/01/11 18:31

@rvL_eXile: Das ist mind. seit A7 nicht mehr notwendig, Levels, samt aller Entities, werden sofort geladen (und die Funktion geht erst weiter, wenn der Ladevorgang abgeschlossen ist).
Posted By: rvL_eXile

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/01/11 18:33

mh okay ^^ Hab noch nie A7 wirklich genutzt... naja gut dann ist meins eher irrelvant würd ich mal sagen tongue
Posted By: xxxxxxx

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/01/11 18:39

@Uhrwerk
grr, da dachte ich man könnte auch noch in der main initialisieren -> Irrtum blush
dabei habe ich vorher noch extra nachgeschaut ob ich keinen speicher überschreibe...
vielen Danke!
@rvl_eXile hab ich schon vorher ausprobiert, trotzdem danke.
xxxxxxx
Posted By: Uhrwerk

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/01/11 20:03

Die Aussage verstehe ich nicht ganz. Grundsätzlich kannst Du Variablen zu einem beliebigen Zeitpunkt initialisieren. Wenn Du aber vor der Initialisierung schreibend auf die Variable zugreifst gibt es natürlich Murks. Entscheidend ist die Reihenfolge, nicht der Zeitpunkt.

Funktionierts denn jetzt?
Posted By: xxxxxxx

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/01/11 20:08

ja es functioniert
ich habe oben nur VECTOR* rotate;
und irgendwann in der main vec_set(rotate,nullvector);
und das hat anscheinend ärger gemacht...
Posted By: WretchedSid

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/01/11 20:30

Manchmal bin ich überrascht das Leute überrascht sind das Speicher keine magische Resource ist die auf gut Glück dahin wandert wo man es sich vorher überlegt hat =/
Posted By: Uhrwerk

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 01:36

Wieso bist Du überrascht, dass viele etwas brauchen, bis sie ein nicht ganz triviales Konzept verstehen? Wenn programmieren so einfach wäre, dann könnte es jeder und wir wären arbeitslos. Also ich zumindest.
Originally Posted By: xxxxxxx
ich habe oben nur VECTOR* rotate;
und irgendwann in der main vec_set(rotate,nullvector);
und das hat anscheinend ärger gemacht...

Na klar macht das Ärger. Schließlich überschreibst Du da ja auch mal ebenso 12 Bytes an einer (mehr oder minder) zufälligen Adresse. Nur mal so aus Neugier: Wie hast Du denn jetzt rotate initialisiert?
Posted By: xxxxxxx

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 12:25

so VECTOR* rotate = nullvector;
Posted By: WretchedSid

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 12:46

Originally Posted By: Uhrwerk
Wieso bist Du überrascht, dass viele etwas brauchen, bis sie ein nicht ganz triviales Konzept verstehen? Wenn programmieren so einfach wäre, dann könnte es jeder und wir wären arbeitslos. Also ich zumindest.

No offense, aber Speicherkonzepte zu verstehen ist nicht dasselbe wie programmieren können. Ich gehe sogar so weit zu sagen das dieses "nicht ganz triviale" Konzept und auch der ganze Pointer foobar und der ganze Rest der basics innerhalb von einer Woche erlernt werden kann. Deswegen kann man aber noch lange nicht programmieren wink

@xxxxxxxxxxxxxxxxxxxxxxxxx:
Das wird dir irgendwann um die Ohren fliegen.
Posted By: xxxxxxx

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 12:50

Originally Posted By: JustSid
@xxxxxxxxxxxxxxxxxxxxxxxxx:
Das wird dir irgendwann um die Ohren fliegen.
wenn's falsch ist dann sag doch bitte wie's richtig ist, sorry wenn ich dich missverstanden habe...
Posted By: WretchedSid

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 13:05

Viel schöner wäre wenn du es selber bemerken würdest, vom ewigen vorsagen lernt man in der Regel nicht so viel wie durch eigene Fehler die einem dann richtig schön in die Fresse fliegen.
Posted By: xxxxxxx

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 13:20

natürlich wäre es besser den Fehler selbst zu finden, doch ich habe keine ahnug wie ich es richtig mache....
Posted By: Uhrwerk

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 16:03

Originally Posted By: xxxxxxx
VECTOR* rotate = nullvector;

Oh, xxxxxxx... das tut doch bitterlich weh wenn mans nur anguckt. Du definierst hier einen Zeiger auf einen Vektor namens rotate und weist diesem Pointer den Nullvector zu. Das wird böse enden. Du musst unbedingt den Unterschied zwischen VECTOR* und VECTOR verstehen. Arbeite ein Tutorial durch.

Originally Posted By: JustSid
No offense, aber Speicherkonzepte zu verstehen ist nicht dasselbe wie programmieren können. Ich gehe sogar so weit zu sagen das dieses [...] in einer Woche erlernt werden kann. Deswegen kann man aber noch lange nicht programmieren

Natürlich ist programmieren weit mehr als ein Speicherkonzept. Aber es ist ein wichtiger Bestandteil davon. Sozusagen eine Komposition. :-P Ne, ernsthaft, wird immer und immer wieder falsch gemacht. Das 3DGS Tutorial ist da auch nur begrenzt eine Hilfe. Ein Blick hier ins Forum zeigt, wie oft das falsch gemacht wird. Ich hab schon eine Menge Nachhilfe im Programmieren gegeben. Selbst in Java haben die Leute teilweise Probleme damit, obwohl man dort ja eigentlich kaum noch von einem Speicherkonzept reden kann. Aber alleine die Referenzen machen manchen Leuten dort echt Probleme.

Posted By: xxxxxxx

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 16:33

Originally Posted By: Uhrwerk
Du musst unbedingt den Unterschied zwischen VECTOR* und VECTOR verstehen.
Ich kenn doch den Unterschied, das eine(VECTOR*) ist ein Pointer der auf einen Vector zeigt und das andere ist ein Vector(VECTOR).
ich habe nur nie verstanden wie ich es hinkriege das ein Pointer auf etwas zeigt...
Also damit ich im zukunft damit keinen Ärger mehr habe:

wäre das definieren von VECTOREN so richtig?
Code:
VECTOR rotate = nullvector;



und wenn dieser Vector als pointer verlangt wird muss man einfach ein "&" vorhängen,oder?
xxxxxxx
Posted By: Uhrwerk

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 17:49

Originally Posted By: xxxxxxx
Ich kenn doch den Unterschied, das eine(VECTOR*) ist ein Pointer der auf einen Vector zeigt und das andere ist ein Vector(VECTOR).

Sehr richtig. VECTOR* enthält eine Adresse und an dieser Adresse muss ein VECTOR sein. VECTOR* ist 32 bit groß. VECTOR ist 96 bit groß.

Originally Posted By: xxxxxxx
ich habe nur nie verstanden wie ich es hinkriege das ein Pointer auf etwas zeigt.

Mit einer Zuweisung, wie bei anderen Variable auch.
Code:
VECTOR V;
VECTOR* pV1 = &V;
VECTOR* pV2 = pV1;



Originally Posted By: xxxxxxx
wäre das definieren von VECTOREN so richtig?
Code:
VECTOR rotate = nullvector;


Überleg einfach mal was auf der rechten Seite deiner Zuweisung steht und was auf der linken Seite steht und dann ob das zusammen passt....

Quote:
und wenn dieser Vector als pointer verlangt wird muss man einfach ein "&" vorhängen,oder?x

"Ein Vector als Pointer" ist schon Käse. Du hast entweder den Vektor oder die Adresse eines Vektors. Die Adresse ermittelst Du aber mit dem & Operator, das ist richtig.
Posted By: xxxxxxx

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 18:38

Vielen Dank!
(jetzt kann ich glaube ich erstmal 80/90% meiner Bugs beseitigen xD)
Originally Posted By: Uhrwerk

Originally Posted By: xxxxxxx
wäre das definieren von VECTOREN so richtig?
Code:
VECTOR rotate = nullvector;


Überleg einfach mal was auf der rechten Seite deiner Zuweisung steht und was auf der linken Seite steht und dann ob das zusammen passt....
auf beiden seiten ein VECTOR, also wüsste ich jetzt nicht WO es probleme geben sollte...

Originally Posted By: Uhrwerk
"Ein Vector als Pointer" ist schon Käse. Du hast entweder den Vektor oder die Adresse eines Vektors.
Ich meinte "den Pointer der auf der auf diesen VECTOR zeigt", also wie du sagtest die Adresse...
xxxxxxx
Posted By: WretchedSid

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 18:48

Originally Posted By: xxxxxxx
auf beiden seiten ein VECTOR, also wüsste ich jetzt nicht WO es probleme geben sollte...


Mal die Ausgabe aus einem vernünftigen compiler frontend:
Quote:
Semantic Issue: Initializing 'VECTOR' with an expression of incompatible type 'VECTOR *'

Posted By: xxxxxxx

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 18:55

aso dachte es wäre ein VECTOR, aber natürlich ist es ein VECTOR* frown
Vielen Dank! laugh
xxxxxxx
Posted By: Pappenheimer

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 20:13

Originally Posted By: JustSid
Originally Posted By: xxxxxxx
auf beiden seiten ein VECTOR, also wüsste ich jetzt nicht WO es probleme geben sollte...


Mal die Ausgabe aus einem vernünftigen compiler frontend:
Quote:
Semantic Issue: Initializing 'VECTOR' with an expression of incompatible type 'VECTOR *'

Im Handbuch ist nicht die Rede davon, dass der "nullvector" ein Pointer ist. confused
Posted By: xxxxxxx

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 20:19

das steht soweit ich es sehe nirgendwo, aber daher dachte ich zuerst das nullvector kein Pointer isr... grin
Posted By: Uhrwerk

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 20:19

Das kann sein, das Handbuch ist da in vielerlei Hinsicht schlampig im Umgang mit Datentypen. Das liegt vermutlich daran, dass vieles über die Zeit gewachsen ist und Datentypen unter C-Script kaum eine Rolle gespielt haben. Es würde aber auch keinen Sinn machen, wenn nullvector ein VECTOR und kein Pointer darauf wäre.
Posted By: Pappenheimer

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 20:45

Ups, habe den Link vergessen zu posten:
http://www.conitec.net/beta/anullvector.htm
Also, nochmal anders gesagt, im Handbuch steht, dass es einVektor ist - von Pointer steht an der Stelle nichts.
Posted By: Joey

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 20:48

@uhrwerk: warum nicht?
Posted By: WretchedSid

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 20:50

Weil das hier geht:
Code:
VECTOR *whatEver()
{
   return nullvector;
}




Kann natürlich auch sein das nullvector ein Makro für vec(0, 0, 0) ist, wobei es dann immer noch ein Pointer wäre.
Dafür das es ein Pointer ist spricht weiterhin das Lite-C extrem schlecht darin ist structs auf dem Stack zu haben und damit dann zu arbeiten.
Posted By: Uhrwerk

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 21:53

Braucht ihr gar nicht weiter rumrätseln. So steht es in der acknex.h:
Code:
VECTOR* nullvector = { x=0; y=0; z=0; }


Was mich jetzt wieder irritiert ist, dass man in nullvector beliebige Werte reinschreiben könnte. Im Handbuch steht ja schließlich read-only.
Posted By: Pappenheimer

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/02/11 22:39

Hübscher Fund! laugh Vielen Dank. Ich sollte unbedingt in den Skripten mal öfter umherstöbern statt nur immer im Handbuch nachzuschauen.
Posted By: Joey

Re: "Empty Pointer in setProperties" macht keinen Sinn... - 05/03/11 06:09

ah stimmt, lite-c kann ja keine structs auf dem stack zurückgeben...
© 2024 lite-C Forums