Tôi có một câu hỏi để làm rõ sự nhầm lẫn của tôi về tổ chức bộ nhớ trong máy tính trong C++.phần dữ liệu trong C++
Trong C++, dữ liệu khác nhau được đặt ở vị trí khác. Sự hiểu biết của tôi là như thế này.
1) phần phân đoạn dữ liệu, nơi dữ liệu chung và dữ liệu tĩnh được đặt;
2) phần heap, các đối tượng được tạo ra bởi ngăn xếp phần mới
3), các biến địa phương
4) phần văn bản, mã riêng của mình.
Đúng không? Có bất cứ điều gì tôi bị mất hoặc đã làm sai?
Cảm ơn!
Thực ra điều đó phụ thuộc vào định dạng đối tượng. Chỉ để làm cho nó khó hiểu hơn, trong Mach-O, ví dụ, tất cả ** dữ liệu ** liên tục sẽ được lưu trữ trong phân đoạn '__TEXT'. Và sau đó cũng có '__LINKEDIT' phân đoạn để giúp' dyld' cho liên kết động, vv – kennytm
Vấn đề chính với câu hỏi của bạn là bạn cho rằng có một số loại tiêu chuẩn ở đây, trong khi đó chỉ là thực hành phổ biến. Mặc dù tổ chức bạn đề cập là phổ biến và hợp lý nhưng nó không phổ biến và có thể khác nhau giữa các triển khai. –
Một vấn đề khác là tiêu chuẩn ngôn ngữ (đặc điểm kỹ thuật) không yêu cầu phần hoặc phân đoạn dữ liệu. Ngôn ngữ chỉ định các thuộc tính (đọc hoặc viết, công khai, riêng tư) và thời gian sống của một đối tượng. Các phần dữ liệu phụ thuộc vào trình biên dịch hoặc phiên dịch và có thể khác nhau giữa các nhà sản xuất và các phiên bản. –