segmentation fault Prozess zurückgegeben 139 (0x8b)
Ich bin neu in der Linux - & codeblocks. Beim Bau der code unten erhalte ich diese Fehlermeldung:
"segmentation fault Prozess zurückgegeben 139 (0x8b)"
Ich weiß, es hat etwas mit Erinnerung zu tun, aber ich finde nicht das problem. Während der Kompilierung der Dateien mit einem Makefile oder separat im terminal habe ich nicht erhalten, keine Fehler.
Den main
erhält 2 Argumente (argv) ComputersInNet.txt - > argv[1] Simulation.txt -> argv[2]
UND ich kann nicht herausfinden, wie ich diese Dateien in das Projekt mit codeblocks, und AUCH in Windows (Visual Basic) der codes funktioniert perfekt.
Ich konnte nicht fügen Sie die codes korrekt (5 Dateien: 2 .h und 3 .cpp) Sie können Sie aus dem link unten, einschließlich der beiden txt-Dateien, die ich als Argumente verwendet werden.
http://depositfiles.com/files/cv2bwmz74
Poste den code hier, anstatt uns zu download und entpacken es;)
Ja, ich besuchte den link, sah Sie das download-setup und sträubte sich.
Haben Sie versucht, führen Sie es unter gdb oder valgrind?
Danke Euch allen für die schnellen replays!! Tut mir Leid kein einfügen des Codes habe ich versucht, aber es kommt nicht gut. ich habe rechcked und jeder Zeiger, der initialisiert wurde, 'NULL' wurde geändert, um eben - <Typ>* X; keine Initialisierung auf NULL. Aber noch immer die gleichen Fehler In der build-log bekomme ich diese Zeile :"process terminated with status 0 (Minuten 6 Sekunden) also ich denke, die bauen Teil geht gut, aber in der Lauf-Teil, wo es scheitert
InformationsquelleAutor David Faiz | 2012-12-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den code-snippet, das problem ist aufgetreten, Unterprogramm
Create_PC_List()
aus aufgerufen wirdmain()
zum erstellen einer Liste von Computern.Ausgabe:
Konnten wir sehen
fopen()
fehlgeschlagen mit Fehler"No such file or directory"
. Daher müssen Sie einen Weg finden, fügen Sie drei text-Dateien, um Code-Blöcke ein zur Verfügung gestellt fürfopen()
.Zweitens Grund für den segmentation fault ist fp zur Verfügung gestellt
getc()
ist einFILE *
Zeiger mit einem NULL - Adresse ist keine gültige DATEI Objekt.Ich denke, diese .txt - Dateien abgelegt werden sollen, im Menü Projekt -> Programm-Argumente, und nicht in der Host-Anwendung. Überprüfen Sie mit CB-Hilfe-Forum.
in diesem link kann u sehen, dass ich keinen Bereich zum schreiben der Datei Namen postimage.org/image/9kauxc42b
Ein paar Kommentare auf der code-fragment - 1) Sie sind die Ausgabe - "Öffnen der Datei fehlgeschlagen..." unabhängig davon, ob die
fopen()
fehlgeschlagen ist oder nicht - es gibt keineif
Aussage. 2) Die zweitefopen()
könnte eventuell scheitern, aber du bist nie zu überprüfen. 3) Wenn die erstefopen()
in der Tat fail, du bist immer noch zu versuchen, rufen Siefgetc()
mit dem Ergebnis, die am besten zu undefiniertem Verhalten, und könnte womöglich die Quelle der segmentation fault, je nach compiler/library/system-Versionen.Ja, ich Stimme völlig mit Ihnen. Ich verpasste die Platzierung korrekte Aussagen in meine Antwort. Idealerweise sollten wir zurück; wenn fopen() NULL zurück. In der Zeit von debugging-ich erinnere mich, es hat funktioniert, und nicht seg Schuld, wenn wir wieder beim öffnen der Datei fehlschlägt. Vielen Dank für diesen Hinweis.
InformationsquelleAutor Sunil Bojanapally