mampfe Geschrieben 17. November 2012 Geschrieben 17. November 2012 Hallo zusammen, ich habe leider das Problem, dass mein Programm das ich auf einem 32-Bit System geschrieben habe nicht auf 64-Bit Systemen läuft... und zwar steht in den Feldern, die ich via malloc angelegt habe nur noch Käse drin... Warum ist das so, und an welchen Stellen müssen Änderungen vorgenommen werden, wenn es auf 64 Bit Systemen laufen soll? Danke für alle guten Tipps! Zitieren
flashpixx Geschrieben 17. November 2012 Geschrieben 17. November 2012 Ohne den Code zu kennen, kann man nicht viel sagen. Ich kann keine Probleme bezüglich 32 und 64 Bitprogrammierung sehen, letztendlich muss ich nur eben richtig die Typen verwenden und die Größen der Daten richtig berechnen (sizeof). malloc liefert einen Zeiger zurück, so dass man natürlich den richtigen Zeigertyp (mit der richtigen Größe) benutzen muss. Zitieren
Klotzkopp Geschrieben 17. November 2012 Geschrieben 17. November 2012 Warum ist das soVermutlich weil dein Code irgendwelche Annahmen über Größen von bestimmten Typen macht, die unter 64 Bit nicht zutreffen. Die Größe von short, int, long usw. ist nicht festgelegt. Du musst daher damit rechnen, dass dir sizeof unterschiedliche Werte liefert, je nachdem, für welche Plattform du baust. Es könnte auch sein, dass dein Code irgendwelche Annahmen über die Größe von Zeigertypen macht. Ganzzahltypen mit festgelegter Größe sind in stdint.h deklariert. Für alles weitere müssen wir, wie schon gesagt, deinen Code sehen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.