C++ SIGSEGV

Nikos Kanellopoulos nkan at panafonet.gr
Wed Sep 11 02:29:01 EEST 2002


On Wednesday 11 September 2002 00:02, Nikos Mavroyanopoulos wrote:
> Κλασική περίπτωση, νέου προγραμματιστή που μόλις έμαθε

Μη βγάζεις βιαστικά συμπεράσματα.
Σίγουρα το λάθος ήταν παιδικό, αλλά μετά 
τις 14 ώρες πέφτει η απόδοση του εγκεφάλου.

Ο αρχικός κώδικας που με απασχολούσε ήταν ο εξής:

ifstream myfile;
myfile.open (path, ios::in);

όπου το path ήταν extern char* .
Πιο πριν γίνεται η ανάθεση
path = yytext
που είναι ασφαλής, αφού το flex
φροντίζει για την εξασφάλιση μνήμης
για την yytext (επίσης char*).

Η τιμή του path σύμφωνα με την gdb 
(print path) είναι "5.txt\n". 
To "\n" δεν ευθύνεται για το πρόβλημα 
(δοκίμασα  print path="5.txt" ,  αλλά τα ίδια).

Στο myfile.open() παίρνω SIGSEGV.
Δεν θα έπρεπε να δουλεύει;

-- 
Νίκος Κανελλόπουλος
www.himaira.net



More information about the Linux-greek-users mailing list