【问题标题】:malloc_size alternative on Linux and WindowsLinux 和 Windows 上的 malloc_size 替代方案
【发布时间】:2012-06-13 03:27:32
【问题描述】:

如果给定一个void * 指针,如何判断在这个给定地址上分配的块的大小(以前在Linux 和Windows 中使用malloc 分配)?我希望这两个系统都能将此类信息存储在某个地方。也就是说,存在于 OSX/Darwin 上的 malloc_size 的替代品。如果有帮助,请使用 gcc/mingw。

【问题讨论】:

  • 我认为大小与其他东西一起存储在某种结构中,就在 malloc 给你的指针之前。如果不是,它可能是指向此类结构的指针,因为free() 将需要此类数据。
  • @nhahtdh 是的,我也希望如此,但我正是需要它。
  • @James,如果我在 Linux 上使用自定义分配器启动您的应用程序,您会怎么做?喜欢LD_PRELOAD=my_super_allocator.so ./your_app?我的意思是,如果您认为void* 背后有一个预定义的结构。
  • @JensGustedt:它不是随机指针,而指针本身显然只存储地址,“创建者”知道有关此特定指针的额外信息。您不会将任何随机指针传递给 free() 吗?我们这里只讲malloc和朋友,不是一般的指针信息函数……

标签: c windows linux gcc malloc


【解决方案1】:

在Windows上,使用MS CRT的东西可以使用_msize,在Linux上你可以试试malloc_usable_size...

【讨论】:

    猜你喜欢
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 2023-03-31
    相关资源
    最近更新 更多