chiossif Δημοσ. 12 Φεβρουαρίου 2007 Δημοσ. 12 Φεβρουαρίου 2007 @Lomar: Το βιβλίο αυτό είναι. Υπενθυμίζω ότι απλώς το προτείνω όπως και πολλοί άλλοι ως το βιβλίο σταθμό στην γλώσσα C και ιδιαίτερα σε θέματα δεικτών. Εδώ: > if ((a=(double **)malloc(n*sizeof(double *)))==NULL){ printf("\nNot enough memory available.\n"); exit(1); } ...ζητάω μνήμη για n δείκτες σε double. Πρόκειται για τον πίνακα δεικτών σε γραμμές του αλγεβρικού μου πίνακα. Τα **="δείκτη σε δείκτη σε ..." ενώ το * είπαμε... Και εδώ: > for(i=0;i<n;i++){ if ((a[i]=(double *)malloc(n*sizeof(double)))==NULL){ printf("\nNot enough memory available.\n"); exit(1); } ...ζητάω n φορές, μία για κάθε γραμμή, μνήμη για n στοιχεία double περιεχόμενα κάθε γραμμής άρα στήλες. Φαντάσου ότι θα μπορούσα να ζητάω διαφορετικό πλήθος στοιχείων σε κάθε γραμμή οπότε αν ο πίνακας μου ήταν συμμετρικός για παράδειγμα να έκανα και οικονομία μνήμης. Πρέπει εδώ να σημειώσω ότι έμαθα από το προηγούμενο θέμα ότι οι φράσεις (double *) και (double **) πριν την malloc (casting) -και όχι μέσα της στο sizeof- πρέπει να αποφεύγονται. Στο νέο παράδειγμα - παραλλαγή τις διέγραψα. Το θέμα είναι σχετικά προχωρημένο για αρχάριο, το ξαναλέω με άλλα λόγια. Απόδειξη το λάθος-quiz του παλαιού αναφερθέντος θέματος. Παρόλα αυτά μην ανησυχείς δεν σταματώ... Ίσως διότι ανήκω στους τελευταίους των malloιcών...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.