Apanepai Δημοσ. 30 Οκτωβρίου 2008 Δημοσ. 30 Οκτωβρίου 2008 Καλησπέρα παιδιά, υπάρχει το εξής πρόβλημα. Έχω γράψει τον εξής κώδικα: struct message{ char* message_tittle; char* message_publ; char* message_index; }; Έπειτα μέσα στη main πάω δημιουργήσω ένα στιγμιότυπο της δομής και να δόση τιμές. Στην πρώτη περίπτωση όπου έχω στον κώδικα της main: message *message1 = new message;message1->message_tittle="test"; cout<<topic1->tomessage->message_tittle<<endl; Όταν το παραπάνω το κάνω compile σε περιβάλλον windows με το Dev-C++ δεν υπάρχει κανένα απολύτος πρόβλημα. Το θέμα είναι ότι πρόκειται για project σχολής και πρέπει να το τρέξω σε unix για να δω εαν είναι όλα οκ. Το τρέψω λοιπόν και σε ubuntu και χρησιμοποιώ τον c++ compiler και μου πετάει warning (warning: deprecated conversion from string constant to ʽchar*ʼ) όταν δίνω τιμή στον δείκτη message_tittle. Επίσης σαν λύση σκέφτηκα να χρησιμοποιήσω την strcpy οπότε γράφω το εξής για να δώσω τιμή στον δείκτη: strcpy(message1->message_tittle,"test"); Πάλι μέσω Dev-C++ ουδέν πρόβλημα ενώ στο linux μου χτυπάει Segmentation fault και δεν κάνει compile. Τι γίνεται εδώ ρε παιδιά γιατί ομολογό ότι μπερδεύτικα στα απλά?
Directx Δημοσ. 30 Οκτωβρίου 2008 Δημοσ. 30 Οκτωβρίου 2008 Δοκίμασε να κάνεις, εκτός από new struct και new στα char * (πχ. message1->message_tittle = new char[20]) διότι διαφορετικά δοκιμάζεις να γράψεις σε τυχαίες θέσεις στην μνήμη της διεργασίας σου αφού το char* από μόνο του είναι ένας pointer προς κάπου, που ακόμα δεν έχεις ορίσει με αποτέλεσμα το segmentation fault λόγο strcpy -ούτε στα Windows δουλεύει σωστά, απλά δεν φαίνεται, μετά από μερικούς κύκλους εκτέλεσης θα σπάσει και σε αυτά. Υ.Γ. Για το deprecated conversion from string constant to ʽchar*ʼ warning δεν μπορώ να σε βοηθήσω διότι δεν χρησιμοποιώ gcc, μπορεί μια αναζήτηση με αυτό το warning όμως στο Google να σε διαφωτίσει. Για περισσότερα εδώ: http://babbage.cs.qc.edu/courses/cs701/Writeable_Strings.html..
PCharon Δημοσ. 30 Οκτωβρίου 2008 Δημοσ. 30 Οκτωβρίου 2008 Αν ενεργοποιήσεις περισσότερα warnings στον DevC μάλλον θα το δεις κι εκεί...
Apanepai Δημοσ. 30 Οκτωβρίου 2008 Μέλος Δημοσ. 30 Οκτωβρίου 2008 Ευχαριστώ πολύ παιδιά. Νομίζω πως έβγαλα άκρη και ξεκόλισα.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.