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