01/10/2018, 17:26
Mảng động với char
Cho mình hỏi tại sao:
char *p;
p="Hello";
lại chạy, trong khi:
char *p;
p[0]='H';
lại không chạy?
Bài liên quan
Cho mình hỏi tại sao:
char *p;
p="Hello";
lại chạy, trong khi:
char *p;
p[0]='H';
lại không chạy?
Vì đoạn code dưới bạn chưa cấp phát vùng nhớ cho con trỏ
p
mà gánp[0] = 'H'
thì nó không chạy. Đoạn code trên theo mình thì"hello"
là 1 chuỗi hằng mà bạn đã trỏp
đến vùng nhớ của nó rồi nên run được !Vì có “p = …” tức là p đã được khởi tạo giá trị.
Còn khi bạn chưa có lệnh “p = …” tức là p đang trỏ đến một ô nhớ ngẫu nhiên nào đó, nếu ô nhớ đó đã được cấp phát cho một ứng dụng khác thì bạn chỉ có thể đọc giá trị của nó chứ không thể ghi được.