Speicherzugriffsfehler

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
gotonox
Beiträge: 36
Registriert: 23.11.2010 19:48:39
Lizenz eigener Beiträge: GNU Free Documentation License

Speicherzugriffsfehler

Beitrag von gotonox » 12.09.2011 00:31:01

hi,

ich programmiere hobbymäßig in c und habe ein problem. unzwar kommt bei manchen programmen die fehlermeldung 'Speicherzugriffsfehler'. ich habe am nachmittag an einem programm gearbeitet und es fertiggestellt. programm läuft wunderbar, gibt keine probleme. nun programmiere ich am abend an einem anderen programm und da kommt öfters ein speicherzugriffsfehler. die kann jedoch nicht am code liegen, weil wenn ich das fertiggestellte programm vom nachmittag ausführe auch speicherzugriffsfehler kommt (code wurde genau so gelassen wie er am nachmittag war, keine veränderungen).

eine ähnliche situation hatte ich letzte woche auch. da habe ich abends an einem programm gearbeitet das ich aber nicht zum laufen gebracht habe da speicherzugriffsfehler kam. den gleichen code (der am letzten abend NICHT ging) hab ich am nächsten tag ausgeführt und alles lief wunderbar.

hier mal mein system:

ubuntu 10.04 lts

intel celeron dual-core e3400 (2 x 2,6 GHz)
6 GB ddr2-1066 kingston hyper x
2 x 500 GB western digital caviar green
msi mainboard (genaue bezeichnung weiß ich grade nicht auswendig ;) )

wäre sehr dankbar für hilfe

Gunman1982
Beiträge: 923
Registriert: 09.07.2008 11:50:57
Lizenz eigener Beiträge: MIT Lizenz

Re: Speicherzugriffsfehler

Beitrag von Gunman1982 » 12.09.2011 05:45:49

Naja Bufferoverflows können sehr unberechenbar sein. Üperprüf deinen Code mal das du auch brav immer genug Speicher allokierst (bedenke hier auch das meist vergessene \0 zum terminieren von characterarrays bzw strings) Prüfe das du nirgendwo mehr auf eine speicheradresse schreibst als du auch speicher allokiert hast.

Als weiteren Tip würd ich dir gdb ans herz legen zum debuggen, dann weisste wenigstens bei welchem aufruf du den segfault bekommst.

Und wenn du ganz verzweifelt bist dann kannste den Code entweder hier mal zum drüber schaun in nopaste drücken oder schickste mir ne pm oder so.

Antworten