Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Borland Builder 5 und Xp

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
21.11.2003, 16:34 Uhr
herby



Hallo liebe Gemeinde,

ich habe ein Programm unter Windows NT4 entwicklelt. In dieser Umgebung funktioniert es fast fehlerfrei. Nun würde ich es gerne unter Windows XP einsetzten. Leider kommt es dort immer wieder zu Programmabstürzen, wenn ich mit Listen und den entsprechenden Zeigern operiere.
Bsp: if(zeiger->nach == NULL)
{
...
}
Dieses Element der Struktur ist in diesem Fall NULL. Also müsste der Quellcode ausgeführt werden. Warum ist dies nicht der Fall? Liegt hier eventuell eine Unverträglichkeit des Borland Builder 5 und XP vor?

PS: Diese Quellcodezeilen funktionierten unter NT ohne Probleme.

ich bedanke mich schon mal im Vorraus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.11.2003, 22:46 Uhr
Bruder Leif
dances with systems
(Operator)


Hmmmmm... bißchen wenig Quellcode für eine "richtige" Fehlersuche... poste doch mal die Funktion, in der der Fehler auftritt!
Daß es nur unter XP nicht funzt, muß nicht zwangsläufig am OS liegen; ich glaub eher, Du schießt mit wilden Zeigern im Speicher rum, und unter NT klappts ZUFÄLLIG. Ich erinnere mich noch dunkel an einige Probleme mit Zeigern... z.B. Debug-Version geht, Release stürzt ab, es sei denn, eine Integer-Variable wird in der Schleife mit hochgezählt usw.
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.12.2003, 15:17 Uhr
herby



ok, hier kommt der quelltext.

if(zeiger->nach == NULL)
{
NeuZeiger = new ZeigerStructur;
Zeiger->nach = NeuZeiger;
NeuZeiger->Daten = xyz;
}

an der stelle Zeiger->nach = NeuZeiger kommt es zu Zugriffsverletzungen. Es sind beides Zeiger auf die gleiche Struktur. Somit sollte es da keine Problemme geben. Was mir aufgefallen ist, die Adresse des NeuZeigers wird beim Debuggen mit 0x00000080 (oder ähnlich) angegeben. Das weicht total von allen anderen Adresswerte ab.

Wie kommt das?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
03.12.2003, 22:18 Uhr
Bruder Leif
dances with systems
(Operator)


Zeigt "Zeiger" auf ein tatsächlich existierendes Objekt? Klingt immer noch nach wilden Zeigern oder Seiteneffekten... poste mal ein bißchen mehr
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.04.2004, 09:32 Uhr
herby



ich vermute, dass das Opjekt existiert.

kurz zur vorgehensweise:
ich rufe daten über eine api-schnittstelle ab. das funktioniert ganz gut, bis auf ein paar haken, die ich schon in den griff bekommen habe.
anschliessend filtere ich diese daten und schreibe die für mich relevanten in eine liste. (siehe auszug quelltext)

beim abfragen kommt es dann zu zugriffsverletzungen. ich laufe durch die liste, bis ich am ende bin.
do
{
Memo->Lines->Add(TempZeiger->daten)
TempZeiger = TempZeiger->nach;
}
while(TempZeiger->nach != NULL);

normalerweise sollte der TempZeiger nie auf NULL stehen. Die Liste wird sauber angelegt (debug...)

problem ist aber mittlererweile gelöst. borland 6 und es funzt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: