Trong ngôn ngữ C/C++ có bao nhiêu vùng nhớ (Memory layout)?
Đây là câu hỏi để phân biệt bạn là Junior hay là Senior bạn có hiểu chuyên sâu về ngôn ngữ mà mình đang sử dụng. Đây cũng là một câu hỏi rất hay được hỏi khi bạn đi phỏng vấn về C/C++.
Cùng oktot khám phá nhé!
C/C++ có 5 vùng nhớ, cụ thể là:
1. Text segment
2. Initialized data segment
3. Uninitialized data segment
4. Stack
5. Heap
Nhiệm vụ cụ thể của từng vùng dưới đây nhé:
1.Text segment: là vùng chứa mã lệnh của chương trình
2. Initialized data segment: chứa các biến toàn cục, biến static, hằng số …(không có biến cục bộ nha). Nhưng các biến này khi tạo ta phải khởi gán giá trị….
Ví dụ: như static int a=5; (nếu static int a; thì không nằm trong vùng này vì chưa khởi gán giá trị)
3. Uninitialized data segment: chứa các biến toàn cục, biến static, hằng số…(không có biến cục bộ nha). Nhưng các biến này khi tạo ra chưa khởi gán giá trị….
Ví dụ: như static int a; (nếu static int a=5;… thì không nằm trong vùng này vì đã khởi gán giá trị)
4. Stack: là một phần bộ nhớ đặc biệt được quản lý một cách tự động bởi CPU theo cơ chế FILO(First In, Last Out).
5. Heap: Vùng nhớ mặc định – vòng đời kết thúc khi Dừng lại chương trình hoạt động.
Đây là Các vùng nhớ trong C/C++ bạn nào đang code với ngôn ngữ này thì phải biết nhé.
Bạn nào còn có thắc mắc thì có thể bình luận bên dưới! Chúng ta cùng thảo luận để hiểu sâu về 5 vùng nhớ trong C/C++ này nhé.