gpt4 book ai didi

我们能知道mxRealloc或mxMalloc返回的指针的长度吗?

转载 作者:太空宇宙 更新时间:2023-11-04 04:31:05 24 4
gpt4 key购买 nike

给定一个由 mxGetPrmxRealloc 返回的指针,我们还能得到它的长度吗?由于 MATLAB 管理指针的内存,它是否存储元数据供我们查询?

最佳答案

你的问题有点不清楚,我试着解释一下这两个函数:

  • mxGetPr 在现有的 mxArray 数值数组上调用以检索指向其数据的指针(准确地说,指向 double 的指针真实数据)。如果您想知道此数据的长度,可以使用 mxGetNumberOfElements 查询原始数组本身。

  • mxRealloc 和相关函数类似于 C 中可用的标准 malloc 函数系列。因此,如果您使用它们,您就会知道它们的大小是因为你是分配内存的人!

mxRealloc和相关函数的目的是让MATLAB在一定程度上自动管理内存;因此,当 MEX 函数返回时,MATLAB 会负责释放使用 mxMalloc 等分配的任何已注册堆内存。

现在编写好的代码意味着您应该释放自己的内存(如果您依赖这种自动内存管理,它会减慢速度),但在某些情况下它确实派上用场(想想在 MEX 函数中抛出错误而不需要依靠丑陋的 goto 语句来确保资源在退出时被释放)。

关于我们能知道mxRealloc或mxMalloc返回的指针的长度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36162371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com