Struct "voll"???
-
Hallo,
ich sitze gerade an einem für mich sehr seltsamen Problem und hoffe, dass mir das von euch jemand erklären kann:
Und zwar habe ich eine DLL geschrieben, die via windows hooks an einen anderen Prozess angehängt wird. Diese DLL enthält unter anderem eine Klasse mit einem Objekt eines Structs. In diesem Struct werden ca. 50 variablen deklariert und initialisiert. Jetzt habe ich an meinem Projekt weitergearbeitet, einige Sachen verändert, dabei sind dann noch ein paar variablen (im struct)dazugekommen.
Ich kompiliere alles einwandfrei. Doch wenn ich dann die DLL "anhänge" stürzt das Programm ab. Nicht sofort, wahrscheinlich in dem Moment in dem er versucht, das Struct Objekt zu erstellen. Jedenfalls saß ich jetzt über 3 Stunden an dem Ganzen und habe festgestellt, dass es an der Anzahl an int und double variablen im struct liegt.(andere typen habe ich noch nicht genau unterstucht, ein zusätzlicher bool wert hat keinen crash verursacht) Habe unterschiedliche variablen gelöscht und andere hinzugefügt, aber immer wenn ich "zu viele" genommen habe, ist das Programm abgestürtzt.Das hört sich für mich selber so weit hergeholt an. Kann das überhaupt sein? Hat so ein Struct eine Speicherbegrenzung?? Oder hat der Prozess an den ich die DLL attache etwas damit zu tun (irgendein limit oder so)???
Ich kann mir das einfach nicht erklären. Vor allem, weil 50 Variablen in der Informatikwelt doch wirklich ein absoluter Witz wären...Ich bin wirklich am Ende und irgendwie schon traumatisiert. Freue mich also über absolut jede antwort!

...damit ich zukünftig nicht auf Variablen - Sparkurs fahren muss....oder zumindest eine Erklärung für diese Umstände habe!!Danke und viele Grüße,
Jakob
-
zeig den code
-
nein, structs haben eigentlich keine begrenzung, vielleicht compilertechnische,
aber 50 variablen sind weit unter einer möglichen grenze. aber wie
schon gesagt, ohne code können wir wenig helfen
-
Das riecht für mich danach, als ob du an irgendeiner Stelle im Code die hartkodierte Größe des Structs benutzt, sei es als Begrenzung in einer Schleife ("iteriere durch alle Elemente"), Abstand zum nächsten Element in einem Array ("gehe x Bytes weiter und du bist bei der nächsten Struct-Instanz") oder ...