Η χρήση του ακόλουθου κώδικα θα μπορούσε να υποκαταστήσει τη δυναμική δέσμευση μνήμης; Αν ναι θα θεωρούταν καλή προγραμματιστική τακτική; int N; printf("enter the size of the array(5-20)"); scanf("%d",&N); int pin[N][N];
άμα τρέξουμε ένα πρόγραμμα χωρίς να ελευθερώσουμε στο τέλος την μνήμη, αυτη για να ελευθερωθεί θα πρέπει ας πούμε να κάνουμε επανεκκίνηση τον υπολογιστή;
Δεν το γνωρίζω για να σου απαντήσω με σιγουριά. Είναι θέμα του λειτουργικού συστήματος και ενδέχεται να υπάρχουν διαφορές στη διαχείριση. * Σίγουρα αν κάνεις reboot θα απελευθερωθεί. * Έχω την αίσθηση, χωρίς να το έχω επαληθεύσει, ότι στα Windows τουλάχιστον και όταν δουλεύεις κάτω από ένα περιβάλλον όπως το Dev, το λειτουργικό δίνει κάποιο χώρο μνήμης που τον παίρνει πίσω όταν τελειώσει το πρόγραμμα.
στον στατικό πίνακα τα αρχικοποιήσαμε όλα εξ αρχής με 0 και έπειτα βάλαμε νέα τυχαία τιμή στα στοιχεία του κάτω τριγωνικού πίνακα. στον δυναμικό πίνακα βάλαμε τυχαία τιμή στα στοιχεία του κάτω τριγωνικού πίνακα που δεσμεύσαμε, και στα υπόλοιπα απλά τυπώσαμε ένα μηδενικο για καλαισθησία, διότι τα στοιχεία αυτά δεν υπάρχουν στον πίνακα.
καλησπέρα Δημήτρη και συγνώμη που ρωτάω κάτι τέτοιο αλλά επειδή δεν βρήκα κάποια ανάλογη επεξήγηση για τις εφωλιασμενες for όπως για την μονή. αν καταλαβαίνω σωστά θα ξεκίνησει από την γραμμή 0 και έπειτα θα πάει στην εφωλιασμενη for όσον αφορά την τύπωση και θα τυπώσει όλα τα στοιχεία της στήλης, στην ουσία γραμμή τυπώνεται όχι στήλη απλά το αναφέρω έτσι διότι έτσι το λέμε και μόλις φτάσει το j να είναι ίσο η μικροτερο με το i ανάλογα τι θα βάλουμε στην συνθήκη τότε θα πάει και θα αύξησει το i στην κυρία for ,θέλω να πω μόλις ολοκληρωθεί η διαδικασία και τερματίσει η εμφωλιασμενη.δηλαδη δεν συμπεριφέρεται όπως η απλή for όπου παράδειγμα θα τυπώσει το ένα στοιχείο αν έχουμε printf και έπειτα θα γίνει η αύξηση και θα πάει να τυπώσει το δεύτερο, στην προκειμένη περίπτωση στις εμφωλιασμενες ολοκληρώνεται η εμφωλιασμενη και έπειτα γίνεται η αύξηση της κυρίας .ελπίζω να μην σε μπέρδεψα, ευχαριστώ πολύ εκ των προτέρων. Υ.Γ ίσως σκέφτομαι παραπάνω από ότι χρειάζεται,δεν ξέρω αν είναι καλό η κακό αλλά πολλές φορές βρίσκομαι σε αδιέξοδο στα πιο απλά πράγματα.
Ναι Άλεξ, μια χαρά τα λες, Η επεξήγηση των εμφωλιασμένων βρόχων στη σειρά αυτή, είναι μέσω των εφαρμογών του μαθήματος 5. Ρίξε μια ματιά και εκεί για να είναι καθαρό στο μυαλό σου (αν και από αυτά που έγραψες εκτιμώ ότι τα έχεις καταλάβει) ΥΓ: Μια χαρά είναι. Μπορεί να φαίνεται ότι αυτό σε καθυστερεί, ωστόσο αν κατανοήσεις κάτι σε βάθος και λύσεις και τις απορίες σου με συνέπεια, τότε θα έχεις άριστη κατανόηση και αυτό θα είναι σωτήριο στη συνέχεια των προσπαθειών σου.
Η χρήση του ακόλουθου κώδικα θα μπορούσε να υποκαταστήσει τη δυναμική δέσμευση μνήμης; Αν ναι θα θεωρούταν καλή προγραμματιστική τακτική;
int N;
printf("enter the size of the array(5-20)");
scanf("%d",&N);
int pin[N][N];
άμα τρέξουμε ένα πρόγραμμα χωρίς να ελευθερώσουμε στο τέλος την μνήμη, αυτη για να ελευθερωθεί θα πρέπει ας πούμε να κάνουμε επανεκκίνηση τον υπολογιστή;
Δεν το γνωρίζω για να σου απαντήσω με σιγουριά. Είναι θέμα του λειτουργικού συστήματος και ενδέχεται να υπάρχουν διαφορές στη διαχείριση.
* Σίγουρα αν κάνεις reboot θα απελευθερωθεί.
* Έχω την αίσθηση, χωρίς να το έχω επαληθεύσει, ότι στα Windows τουλάχιστον και όταν δουλεύεις κάτω από ένα περιβάλλον όπως το Dev, το λειτουργικό δίνει κάποιο χώρο μνήμης που τον παίρνει πίσω όταν τελειώσει το πρόγραμμα.
εδω δεν καταλαβα πως μηδενισαμε τα ανω στοιχεια του πινακα. γιατι να ειναι for (i=j+1;) στο 7:12
Αν μπορείς, επαναδιατύπωσε την ερώτησή σου, δεν βλέπω αυτό που λες στο 7:12
στον στατικό πίνακα τα αρχικοποιήσαμε όλα εξ αρχής με 0 και έπειτα βάλαμε νέα τυχαία τιμή στα στοιχεία του κάτω τριγωνικού πίνακα.
στον δυναμικό πίνακα βάλαμε τυχαία τιμή στα στοιχεία του κάτω τριγωνικού πίνακα που δεσμεύσαμε, και στα υπόλοιπα απλά τυπώσαμε ένα μηδενικο για καλαισθησία, διότι τα στοιχεία αυτά δεν υπάρχουν στον πίνακα.
καλησπέρα Δημήτρη και συγνώμη που ρωτάω κάτι τέτοιο αλλά επειδή δεν βρήκα κάποια ανάλογη επεξήγηση για τις εφωλιασμενες for όπως για την μονή. αν καταλαβαίνω σωστά θα ξεκίνησει από την γραμμή 0 και έπειτα θα πάει στην εφωλιασμενη for όσον αφορά την τύπωση και θα τυπώσει όλα τα στοιχεία της στήλης, στην ουσία γραμμή τυπώνεται όχι στήλη απλά το αναφέρω έτσι διότι έτσι το λέμε και μόλις φτάσει το j να είναι ίσο η μικροτερο με το i ανάλογα τι θα βάλουμε στην συνθήκη τότε θα πάει και θα αύξησει το i στην κυρία for ,θέλω να πω μόλις ολοκληρωθεί η διαδικασία και τερματίσει η εμφωλιασμενη.δηλαδη δεν συμπεριφέρεται όπως η απλή for όπου παράδειγμα θα τυπώσει το ένα στοιχείο αν έχουμε printf και έπειτα θα γίνει η αύξηση και θα πάει να τυπώσει το δεύτερο, στην προκειμένη περίπτωση στις εμφωλιασμενες ολοκληρώνεται η εμφωλιασμενη και έπειτα γίνεται η αύξηση της κυρίας .ελπίζω να μην σε μπέρδεψα, ευχαριστώ πολύ εκ των προτέρων.
Υ.Γ ίσως σκέφτομαι παραπάνω από ότι χρειάζεται,δεν ξέρω αν είναι καλό η κακό αλλά πολλές φορές βρίσκομαι σε αδιέξοδο στα πιο απλά πράγματα.
Ναι Άλεξ, μια χαρά τα λες, Η επεξήγηση των εμφωλιασμένων βρόχων στη σειρά αυτή, είναι μέσω των εφαρμογών του μαθήματος 5. Ρίξε μια ματιά και εκεί για να είναι καθαρό στο μυαλό σου (αν και από αυτά που έγραψες εκτιμώ ότι τα έχεις καταλάβει)
ΥΓ: Μια χαρά είναι. Μπορεί να φαίνεται ότι αυτό σε καθυστερεί, ωστόσο αν κατανοήσεις κάτι σε βάθος και λύσεις και τις απορίες σου με συνέπεια, τότε θα έχεις άριστη κατανόηση και αυτό θα είναι σωτήριο στη συνέχεια των προσπαθειών σου.
@@psounis ευχαριστώ πολύ Δημήτρη,καλη συνέχεια σε ότι κανείς!