Δημοσιεύτηκε: 04 Σεπ 2011, 16:54
Λιγο πριν προχωρησουμε εχω κάποιες απορίες.
1.
Στο
μπορει να δεχθεί άλλες 92 τιμές για είσοδο? Πχ απο τον χρήστη... (φυσικά απο τον δείκτη s[5] και μετα )
Απο οσο εχω καταλαβει ενα string ειναι ενας πίνακας χαρακτήρων αλλα μπορω και με βεβαιότητα να πω (συμφωνα με αυτα που εδωσε και ο migf και τα διαβασα αρκετα καλα) οτι ενας πίνακας χαρακτήρων δεν ειναι απαραίτητα ενα string. Οκ?
2. Κανονικα το
δεν μπορει να περιμένει είσοδο απο τον χρήστη ή πρεπει να του ορίσεις μια τιμή στο μέγεθος (του πίνακα) ωστε να ξέρει ο μεταγλωττιστής απο ποιο σημείο και μετα θα πρεπει να βάλει τον μηδενικο χαρακτηρα ο οποιος και σηματοδοτει το τελος της συμβολοσειρας για να ελενξει με πιο σωστο τροπο την εισοδο του χρηστη?
Και τελος αν
3.
Αν δηλωσεις δηλαδη εναν πίνακα με στοιχεια παραπανω απο οσα χρειάζεσαι (επειδη πχ το UNIX επιτρέπει μεχρι 8 χαρακτήρες ονοματα) τοτε εδω μπορει να γινει ας πουμε buffer overflow?

1.
Στο
- Κώδικας: Επιλογή όλων
char s[100]="testing"
μπορει να δεχθεί άλλες 92 τιμές για είσοδο? Πχ απο τον χρήστη... (φυσικά απο τον δείκτη s[5] και μετα )
Απο οσο εχω καταλαβει ενα string ειναι ενας πίνακας χαρακτήρων αλλα μπορω και με βεβαιότητα να πω (συμφωνα με αυτα που εδωσε και ο migf και τα διαβασα αρκετα καλα) οτι ενας πίνακας χαρακτήρων δεν ειναι απαραίτητα ενα string. Οκ?
2. Κανονικα το
- Κώδικας: Επιλογή όλων
char s[] = "";
δεν μπορει να περιμένει είσοδο απο τον χρήστη ή πρεπει να του ορίσεις μια τιμή στο μέγεθος (του πίνακα) ωστε να ξέρει ο μεταγλωττιστής απο ποιο σημείο και μετα θα πρεπει να βάλει τον μηδενικο χαρακτηρα ο οποιος και σηματοδοτει το τελος της συμβολοσειρας για να ελενξει με πιο σωστο τροπο την εισοδο του χρηστη?
Και τελος αν
3.
- Κώδικας: Επιλογή όλων
char usernme[32];
Αν δηλωσεις δηλαδη εναν πίνακα με στοιχεια παραπανω απο οσα χρειάζεσαι (επειδη πχ το UNIX επιτρέπει μεχρι 8 χαρακτήρες ονοματα) τοτε εδω μπορει να γινει ας πουμε buffer overflow?