30/09/2018, 17:50
Tại sao lúc đầu khai báo con trỏ để cấp bộ nhớ...sau đó thì lại dùng nó như một mảng?
Tình hình là em vừa học phần cấp phát động xong…không hiểu tại sao lúc đầu khai báo con trỏ để cấp bộ nhớ…sau đó thì lại dùng nó như một mảng (!?) anh/chị giải thích giùm em hộ phát
Bài liên quan
Bởi vì vùng nhớ cấp phát cho một con trỏ có thể được truy cập như mảng. Về bản chất, vùng nhớ cấp phát cho một con trỏ là một vùng nhớ liên tiếp.
Mảng quản lý một vùng nhớ liên tiếp.
Khác biệt giữa mảng và vùng nhớ được cấp phát động ở chỗ, mảng là vùng nhớ tĩnh, chỉ được khai báo số lượng vùng nhớ lúc code và không thay đổi được khi chạy chương trình. Trong khi đó vùng nhớ cấp cho con trỏ có thể thay đổi được tùy vào nhu cầu tại mỗi thời điểm khác nhau.
Ví dụ: Nếu một lớp học có
n
học sinh thì nhập vàon
học sinh, chương trình sẽ cấp vùng nhớ chon
học sinh.Dạ ý em muốn hỏi là tại sao cú pháp nó lại tương tự ấy @@ em nghĩ nó phải khác chứ
Tại sao phải khác nhỉ?
Nếu như mình khai báo
char a[100];
thì nó được để trong stack memory, nhưng cấp phát động thì nó nằm trong heap memory. Cả hai đều là vùng nhớ chỉ khác nơi chứa thôi.Ồ…em cảm ơn