VicoTas
Câu hỏi
Chip chip chipchip
26/04/2013 20:53

Xin giải thích về Heap và Stack trong C#, cơ chế làm việc như thế nào?



Danh sách câu trả lời (1)
dang duc thang thang_star 26/04/2013 20:53
Bất kỳ ứng dụng viết bằng ngôn ngữ nào, sau khi dịch đều được đổi ra dạng ngôn ngữ máy. Khi 1 chương trình chạy, nó truy xuất một số vùng nhớ chứa thông tin khác nhau như sau:

- Vùng nhớ chứa dữ liệu tĩnh của chương trình, vùng nhớ này chứa các biến dữ liệu được khai báo trong chương trình. Vùng này có kích thước cố định trong suốt quá trình chạy của ứng dụng.

- Vùng nhớ chứa dữ liệu động của chương trình, vùng nhớ này chứa các dữ liệu được cấp phát động (qua lệnh New, hàm malloc()...). Ta thường gọi vùng nhớ này là Heap.

- Vùng nhớ phục vụ cho việc gọi hàm và truyền tham số, vùng nhớ này được gọi là Stack với cơ chế truy xuất rất đặc biệt: chỉ cho phép ghi dữ liệu vào đỉnh stack và chỉ cho phép đọc dữ liệu từ đỉnh stack, ta nói cách truy xuất này là LIFO (Last-in First-out), nghĩa là dữ liệu nào mới được ghi vào sau cùng thì sẽ được đọc ra đầu tiên. Thường các lệnh của ngôn ngữ cấp cao không cho phép truy xuất trực tiếp vào Stack.
Trả lời câu hỏi
Tải lại mã
Câu hỏi lĩnh vực Lập trình
nophoto Xin hướng dẫn cách tạo DLL bằng C chuẩn có chức nãng kiểm sự tồn tại và kết thúc (kill) một process thông qua processID trong Windows.?

Đăng lúc: 20:53 - 26/04/2013 trong Lập trình

Mạnh Linh Xin cho biết trong C# làm sao hook các sự kiện bàn phím?

Đăng lúc: 20:52 - 26/04/2013 trong Lập trình

nophoto Xin hỏi sử dụng đối tượng nào của VB để gõ được tiếng Hoa?

Đăng lúc: 20:52 - 26/04/2013 trong Lập trình

nophoto Xin hướng dẫn lập trình bằng ngôn ngữ C đọc tuần tự hết các file văn bản trong 1 thư mục - đọc hết 1 file thì tự động đọc file kế tiếp?

Đăng lúc: 20:52 - 26/04/2013 trong Lập trình

Chip chip Chương trình client-server dùng component winsock, khi mang sang máy khác thì không chạy được và báo lỗi không có component?

Đăng lúc: 20:52 - 26/04/2013 trong Lập trình

Đức Việt Ngôn ngữ lập trình nào thích hợp cho hướng "hệ thống thông tin"?

Đăng lúc: 20:52 - 26/04/2013 trong Lập trình

NgocUk Xin hỏi công cụ hỗ trợ tiếng Hoa trong VB, cách xác định chiều dài của chuỗi tiếng Hoa?

Đăng lúc: 20:52 - 26/04/2013 trong Lập trình

Nguyễn Văn Siêu Xin hỏi có OCX nào hỗ trợ chơi nhạc MP3 không? Làm thế nào tạo bộ hiển thị tín hiệu âm thanh theo tần số và độ lớn âm lượng?

Đăng lúc: 20:52 - 26/04/2013 trong Lập trình

Uk Dùng MsgBox trong Access hiển thị đc chữ Việt, nhưng khi đem chương trình sang máy khác thì phải vào properties.Appeareance để chỉnh mới hiển thị đc?

Đăng lúc: 20:52 - 26/04/2013 trong Lập trình

Ngô Minh Tùng Để xây dựng 1 chương trình phần mềm cần phải chuẩn bị những gì? Một chương trình phần mềm bao gồm những gì?

Đăng lúc: 20:52 - 26/04/2013 trong Lập trình

Rao vặt Siêu Vip