migf1 έγραψε:Ας πούμε ότι όντως τα ξεκαθάρισες με τους μονούς και τους διπλούς δείκτες. Σε 1 μήνα από τώρα θα τα έχεις ακόμα ξεκάθαρα, η τότε θα αρχίσεις πάλι να κάνεις παραδείγματα σαν το παραπάνω για να τα... ξανα-ξεκθαρίσεις, επειδή στο μεταξύ θα έχεις ασχοληθεί εξίσου αποσπασματικά με καμιά 10αριά άλλα πράγματα, άσχετα και μεταξύ τους και με τους δείκτες... διότι η μέχρι τώρα εμπειρία στο νήμ, αυτό δείχνει
migf1 έγραψε:
Ακόμα και τώρα που τα έχεις φρέσκα ξεκαθαρισμένα, είσαι σε θέση να διαχωρίσεις πότε και γιατί μπορεί να θέλεις να χρησιμοποιήσεις π.χ. διπλό δείκτη σε πρόγραμμα που κάνει κάτι το ολοκληρωμένο; Η ακόμα πιο απλά, είσαι σε θέση να διαχωρίσεις πότε και γιατί μπορεί να θέλεις να χρησιμοποιήσεις απλό δείκτης;
Νομιζω ναι. Πχ αμα θες να δουλέψεις απευθείας πάνω στις μεταβλητές του προγραμματος σου
τις οποιες περνάς στην συνάρτηση θα πρεπει να τις περάσεις σαν δείκτες (μονούς) αν ειναι απλές μεταβλητές
μεσα στην main() αυτο γινεται γιατι οπως εχουμε πει μολις η συνάρτηση σταματήσει την λειτουργια της και επιστρεψει τον ελεγχο οι τοπικες της μεταβλητές διαγράφονται. Αν ηδη τωρα εχουμε δείκτες... θα πρεπει μεσα στην συνάρτηση να τους περάσεις ως διπλούς .
Αλλα στη κληση και παλι αυτοι οι διπλοί θα πρέπει να δινουν μια διεύθυνση μνήμης ή καλύτερα να ειναι δείκτες
προς μια διεύθυνση μνήμης. Ωραια... στο δικο μου παράδειγμα αυτο γινόταν με σκέτο p διοτι ηδη εκει μέσα έδινα εγω
την διεύθυνση ενος άλλου δείκτη που μετα αυτος έδειχνε στην μεταβλητή που ήθελα.... για αυτο και οπως ειπα χρησιμοποιούσα
2 ξεχωριστούς εναν μονο και εναν διπλο με ξεχωριστο προσδιοριστή (όνομα).
Στο μεν δικο σου επειδη ΔΕΝ γινοταν αυτο και χρησιμοποιούσες στις λίστες εναν head τη μια σαν *head την άλλη σαν **head
άμα έβαζες σκετο head σαν ορισμα μέσα στη συνάρτηση θα το έπαιρνε οτι αναφέρεσε στον μονό αρα για να δείξεις εσυ οτι
αναφέρεσαι στον διπλό ήθελες &head δείκτη σε δείκτη δηλαδη οποτε το συστημα το θεωρούσε ετσι παρολο που χρησιμοποιείς
τον ιδιο και την μια τον χειριζεσαι σαν μονο την αλλη σα διπλο
εχω καπου αδικο?
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]