Tôi sử dụng Marshal.GlobalHAlloc
để cấp phát bộ nhớ. Như tài liệu nói: "Phương pháp này cho thấy các Win32 LocalAlloc chức năng từ Kernel32.dll.". GlobalAlloc
's tài liệu nói rằng nó sẽ được 8 byte liên kết nhưng LocalAlloc
không nói bất cứ điều gì về sắp xếp.Làm thế nào để cấp phát bộ nhớ với sự liên kết 16 byte?
Ví dụ tôi muốn phân bổ 1024 byte và đảm bảo nó được căn chỉnh theo 16. Nó sẽ hoạt động khi tôi phân bổ 1024 + 16 byte sau đó tôi kiểm tra con trỏ% 16? Nếu kết quả là 0 nó có nghĩa là bộ nhớ được liên kết, khi nó không phải là 0, tôi chỉ cần tăng con trỏ để phù hợp với mong đợi của tôi. Vấn đề là tôi không biết, nếu tôi đã liên kết con trỏ nó thực sự là phù hợp trong bộ nhớ vật lý?