Làm thế nào người ta có thể biết, được đưa ra một con trỏ void *
, kích thước của một khối được phân bổ trên địa chỉ này (trước đây được phân bổ bằng cách sử dụng malloc
; trong Linux và Windows) là gì? Tôi hy vọng cả hai hệ thống chắc chắn lưu trữ loại thông tin này ở đâu đó. Tức là, thay thế malloc_size
tồn tại trên OSX/Darwin. Sử dụng gcc/mingw nếu nó giúp.thay thế malloc_size trên Linux và Windows
11
A
Trả lời
12
Trên Windows, điều mà sử dụng MS CRT có thể sử dụng _msize, trên Linux bạn có thể thử malloc_usable_size ...
+0
Xem thêm: http://blogs.msdn.com/b/oldnewthing/archive/2012/03/16/10283988.aspx – Anders
Các vấn đề liên quan
- 1. fcntl thay thế trên Windows
- 2. biên dịch trên windows và linux
- 3. Biên dịch chéo trên Windows và Linux
- 4. Linux tìm và thay thế
- 5. các kết quả rand() khác nhau trên Windows và Linux
- 6. Thay thế cho JFileChooser trên Linux?
- 7. COFF trên Linux hoặc ELF trên Windows
- 8. Ký hiệu Shebang: Kịch bản Python trên Windows và Linux?
- 9. Python: Nhận Điểm trên Windows hoặc Linux
- 10. Gỡ lỗi trên Linux cho Windows Developer
- 11. Làm thế nào để làm cho bytecode OCaml hoạt động trên Windows và Linux
- 12. Phát triển Android trên windows hoặc linux?
- 13. Gợi ý cho công cụ tìm kiếm và thay thế dòng lệnh trên Windows
- 14. Biên dịch C# + WPF trên Linux để chạy trên Windows
- 15. Tạo thư viện dùng gcc trên Linux và MinGW trên Windows
- 16. Biểu tượng trạng thái trong GTK + trên MacOSX, Windows và Linux (Gnome) và python
- 17. Sử dụng "r +" trong fopen trên windows vs linux
- 18. Lựa chọn thay thế cho TOAD (Linux)
- 19. Có sự thay thế cho mèo trên Windows
- 20. Thay thế Pgadmin III - Windows
- 21. tchar.h trên linux
- 22. Thực hiện một công việc con đường cả trên Linux và Windows
- 23. unistd.h và c99 trên Linux
- 24. killproc và pidofproc trên linux
- 25. Cách nắm bắt Ctrl + C trên Windows và Linux với Qt
- 26. Chủ đề/So sánh quy trình trên Linux/Windows
- 27. Phát triển các ứng dụng Windows trên Linux?
- 28. Thay đổi tên tệp bằng TortoiseSVN trên Windows
- 29. Thay đổi .gitconfig vị trí trên Windows
- 30. Tạo thủ công Windows Azure .cspkg và tệp .cscfg trên Mac/Linux
Tôi nghĩ rằng kích thước được lưu trữ cùng với các chất liệu khác trong một số loại struct chỉ ngay trước khi con trỏ được cho bạn bởi malloc. Nếu không, nó có thể là một con trỏ đến cấu trúc như vậy, vì 'free()' sẽ cần dữ liệu như vậy. – nhahtdh
@nhahtdh Vâng, tôi cũng hy vọng như vậy, nhưng tôi cần nó chính xác. – Cartesius00
@ James, bạn sẽ làm gì nếu tôi khởi chạy ứng dụng của mình với trình phân bổ tùy chỉnh của tôi trên Linux? Giống như 'LD_PRELOAD = my_super_allocator.so./Your_app'? Ý tôi là nếu bạn nghĩ rằng có một cấu trúc định trước đằng sau 'void *'. –