Δημοσιεύτηκε: 31 Ιούλ 2011, 18:56
από migf1
Star_Light έγραψε:εκεινο που δεν καταλαβαινω ομως ειναι αυτο ->

Κώδικας: Επιλογή όλων
while(div2f(x,y,&result)==0);


δηλαδη? μεχρι το while να δώσει μηδενική τιμη? δηλαδη FALSE??? (A!!!!Τωρα σαν να το επιασα.... αλλα θελω και επιβεβαιωση!)

Ναι, αυτό που εξήγησε κι ο φίλος Σταματίου. Όσο η συνάρτηση επιστρέφει 0 (FALSE) το loop επαναλαμβάνεται.

έγραψε:2. Αν καταλαβα καλα αν τον ελεγχο αυτον δεν τον καναμε μεσα στην συναρτηση ποτε ακριβως θα ειχαμε προβλημα???? υπαρχει καποιο ξεκαθαρο και απλο παραδειγματακι???? ή θα μας μπερδεψει οποτε δεν χρειαζεται????

Στη συγκεκριμένη περίπτωση του παραδείγματος, αν δεν ελέγξεις μέσα στη συνάρτηση τότε αυξάνεις τον κίνδυνο το πρόγραμμά σου να διαιρέσει με το 0, σε περίπτωση που σου ξεφύγει να κάνεις τον έλεγχο έξω από τη συνάρτηση. Ενώ τώρα και να σου ξεφύγει δεν διαιρεί ποτέ με το 0.

έγραψε:3. Και τωρα θα ρωτησω και κατι πιο "περιεργο" αρχικα η μεταβλητη result δηλωνεται χωρις να αρχικοποιηθει κατι που σημαινει πως στο memory layout εχει μπει στο BSS και μετα δηλαδη σαν δείκτης αποθηκεύεται παλι μεσα στο STACK της συνάρτησης? ΑΥτο δεν μπορω να πιασω τοσο καλα .. ενταξει με το οτι ορισμενοι μεταγλωτιστες αναγνωριζουν αυτοματα πως η συναρτηση περιμενει σαν παραμετρο εναν δεικτη που εχει πει και ο migf1 στο αλλο του τουτοριαλ στο αλλο σαιτ που ελεγε για τους δεικτες αλλα με την μνημη δεν καταλαβαινω ακριβως τι γινεται..... Αν ειναι της παρουσης ας συγκεκριμενοποιηθει και αυτο!!!!

Αυτά κάντα όλα... delete :lol: Δεν χρειάζεσαι απολύτως τίποτα από τα παραπάνω για να μάθεις βασικό προγραμματισμό ;)

Ωραίος φίλε Σταματίου σχετικά με τη λύση της προηγούμενης άσκησης! :) :)

Μια μικρή σημείωση μόνο, άσχετη με τη συνάρτηση. Το μήκος 10 που έχεις δώσει στο inbuf, σημαίνει πως αν ο χρήστης σου πληκτρολογήσει περισσότερους από 9 χαρακτήρες στην κύρια είσοδο (στον 10ο βάζει το '\0' η s_get) τότε θα αντιμετωπίσεις πάλι το πρόβλημα του line-buffering και των απομειναριών. Το μήκος του inbuf πρέπει να είναι μεγάλο (πολύ μεγαλύτερο από το μέγιστο πλήθος χαρακτήρων που ενδέχεται να μας πληκτρολογήσει στην είσοδο ο χρήστης, ακόμα κι αν είναι κακόβουλος... για αυτό το βάζω τουλάχιστον 256 εγώ ;) )