Δημοσιεύτηκε: 21 Μαρ 2012, 20:08
Ας ξεκινήσω με μια απορία.
Έχω ένα string και θέλω να αλλάξω το πρώτο του γράμμα (ουσιαστικά το πρώτο στοιχείο της array).
Πιθανότατα θα το έκανα έτσι:
Αν όμως δηλώσω το string έτσι:
Πως θα κάνω το ίδιο πράγμα;
Σκέφτηκα να το κάνω έτσι:
Όμως παίρνω Segmentation fault χωρίς κανένα warning στο compile.
Πως θα το κάνω τελικά και γιατί το παραπάνω δεν δουλεύει;
Έχω ένα string και θέλω να αλλάξω το πρώτο του γράμμα (ουσιαστικά το πρώτο στοιχείο της array).
Πιθανότατα θα το έκανα έτσι:
- Κώδικας: Επιλογή όλων
char str[] = "String";
str[0] = 'X';
puts(str);
Αν όμως δηλώσω το string έτσι:
- Κώδικας: Επιλογή όλων
char *str = "String";
Πως θα κάνω το ίδιο πράγμα;
Σκέφτηκα να το κάνω έτσι:
- Κώδικας: Επιλογή όλων
char *str = "String", *p = str;
*p = 'X';
puts(str);
Όμως παίρνω Segmentation fault χωρίς κανένα warning στο compile.
Πως θα το κάνω τελικά και γιατί το παραπάνω δεν δουλεύει;