Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

krueschta

Routinier

Dabei seit: 23.04.2003

Beiträge: 491

 

1 Zum Seitenanfang

Freitag, 4. Juni 2010, 09:15

C Programm läuft auf anderem Rechner falsch

Hi,
Ich habe ein Programm in C geschrieben, welches auf meinem Laptop in einer virtuellen Maschine (i386) läuft.
Auf meinem Desktop-Pc (OpenSuse) muss ich das Programm neu kompilieren, weil es sich hier um eine andere Architektur (x86_64) handelt. Und dann klappt das Programm nicht mehr richtig.
In dem Programm wird ein Sortieralgorithmus implementiert.

Was könnte an den Systemen unterschiedlich sein, das das ganze nicht mehr richtig funktionieren lässt?

Das Programm führt nur einige Arbeit auf Char-Arrays (Strings) aus (strcmp & strdup), arbeitet sonst mit integern und schreibt in eine Datei.
 

Don_Jo

Tripel-As

Dabei seit: 29.04.2008

Beiträge: 172

 

2 Zum Seitenanfang

Freitag, 4. Juni 2010, 09:49

Was für ein Os hast du denn in deiner VM? Falls es Windows ist, könnte es sein, dass du Windowsspezifische Funktionen oder Bibliotheken nutzt, und dass es daher nicht unter dem Linux deines Desktops Funktioniert...
Im Übrigen bin ich der Meinung, dass Karthago zerstört werden muss.

Mit freundlichen Grüßen
Don_Jo
 

nocturne

Kaiser

Dabei seit: 06.01.2005

Beiträge: 1 167

 

3 Zum Seitenanfang

Samstag, 5. Juni 2010, 11:11

Werden funktionen mit Pointervariablen aufgerufen? Es könnten sich Threads die Inhalte wegnehmen.
Wenn du mit c arbeitest wäre es ratsam sich in entsprechenden Foren zu registrieren. Ich selber bin in weiteren 20 foren registriert.

PS Die integer werden in 64-bit enthalten anstatt 32 bit, entsprechend verschiebt sich die 0 nach >> 32 oder << 32.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »nocturne« (5. Juni 2010, 11:11)

 

DanielSan

Jungspund

Dabei seit: 23.06.2010

Beiträge: 10

 

4 Zum Seitenanfang

Samstag, 17. Juli 2010, 00:57

Ich kann mich krueschta nur anschließen.
Je nach dem mit welchen Datentype du arbeitest oder bestimmter Variablen über die Pointerarthmetik adressierst kann es sein das dein Programm die Daten oder Adressbereiche falsch verwaltet.
Bei den meisten Compilern lässt sich dies jedoch einstellen, oftmals stehen Datentypen sowohl als 16- 32- oder 64-Bit-Version zur Verfügung. Es kann auch sein dass es für die Basisfunktion strcmp in der verwendeten Programmbibliothek auch eine 64-Bit Version gibt.
 

wischi

Routinier

Dabei seit: 23.01.2009

Beiträge: 493

 

5 Zum Seitenanfang

Samstag, 17. Juli 2010, 14:57

Es ist für die analyse eine Programms einfach nicht möglich mit so einer kurzen Beschreibung zu starten...

Folgende Möglichkeiten:

- du lädsts das Problemfile hoch, ich würds mir durchlesen (interessehalber)
- du beschreibst genau was dein Programm tun sollte und was es tut wenns falsch läuft.
- gibt zu debugzwecken an verschiedenen Stellen die Variablenwerte aus, bzw. steppe langsam mit dem debugger durch (dieser Punkt funktioniert zu 99%)

EDIT: Ein paar tippfehler korrigiert
wischipedia - http://wischenbart.org/wwa (einfach mal vorbeischaun)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »wischi« (18. Juli 2010, 14:20)

 

silence

König

Dabei seit: 28.02.2003

Beiträge: 981

 

6 Zum Seitenanfang

Samstag, 17. Juli 2010, 20:45

PS Die integer werden in 64-bit enthalten anstatt 32 bit, entsprechend verschiebt sich die 0 nach >> 32 oder << 32.

Nein, das ist compiler abhängig. Der C Standard lässt auch beim INT große Freiheiten, sodass ein int auf x64 immernoch 32Bit lang sein kann.
Interessanter ist die Frage, welche Compiler verwendet wurden. Der VCC hat seine Eigenarten, so auch der GCC - führt dann öfters mal zu abstrusen Fehlern.

Wie schon wischi sagte: Wenn es geht code hochladen, SAMT compilersettings.
Aktuell nutze ich: Windows, Linux, MacOS X, Solaris...weil die Welt nicht nur S/W ist!
Blog