Ω μεγαλε Ψουνη ιδου η απορία μου. Εαν εχω ως ορισμα σε μια συναρτηση εναν διπλο δεικτη **p, οταν καλεσω την συναρτησή μου τι θα βαλω στην θεση του διπλου δείκτη κατα την κλήση;
Έχω γράψει ακριβώς τον ίδιο κώδικα...παρ' όλα αυτά, όταν τυπώνω τα μεγέθη, ενώ με sizeof(double) παίρνω αποτέλεσμα 8 bytes, όταν τυπώνω sizeof(double *) ή sizeof(double **) τα bytes που μου δίνει είναι 4. Γιατί συμβαίνει αυτό;
Ω μεγαλε Ψουνη ιδου η απορία μου. Εαν εχω ως ορισμα σε μια συναρτηση εναν διπλο δεικτη **p, οταν καλεσω την συναρτησή μου τι θα βαλω στην θεση του διπλου δείκτη κατα την κλήση;
Ω άξιο τέκνον, θα βάλεις διπλό δείκτη
Π.χ. δήλωση στην main
int **a;
πρωτότυπο συνάρτησης
f(int **p)
κλήση συνάρτησης
f(a)
80+4+2=86 μολις τωρα το καταλαβα τι pc εχω :)
Έχω γράψει ακριβώς τον ίδιο κώδικα...παρ' όλα αυτά, όταν τυπώνω τα μεγέθη, ενώ με sizeof(double) παίρνω αποτέλεσμα 8 bytes, όταν τυπώνω sizeof(double *) ή sizeof(double **) τα bytes που μου δίνει είναι 4. Γιατί συμβαίνει αυτό;
το double* παιρνει ως τιμες διευθύνσεις μνημης (ακεραιες τιμες με λιγα λογια) ενώ το double παιρνει τιμές πραγματικές διπλής ακρίβειας
Emena μου βγαζει 80+8+4=92? τι λαθος εχω κάνει...
Κανένα λάθος. Ο pointer σε εσένα έχει μέγεθος 4bytes και σε εμένα 8bytes