mxMalloc (C和Fortran)
使用未初始化的动态内存分配MATLAB内存管理器
C语法
#包括“矩阵。h”# include < stdlib。h > void * mxMalloc (mwSize n);
Fortran语言的语法
# include“fintrf。h”mwPointer mxMalloc mwSize n (n)
参数
-
n
-
分配的字节数
n
大于0
返回
指针指向的动态内存分配,如果成功。如果不成功的垫或引擎独立应用程序,然后mxMalloc
返回零
在C (0
在Fortran)。如果在墨西哥人文件不成功,那么墨西哥人返回到MATLAB文件终止和控制®提示。
mxMalloc
失败时没有足够的可用堆空间。
如果你叫mxMalloc
在C值n
=0
,然后用MATLAB的回报零
或一个有效的指针。
描述
mxMalloc
分配连续的堆空间足够n
字节。在MATLAB应用程序分配内存,使用mxMalloc
而不是ANSI®Cmalloc
函数。
在墨西哥人的文件,但不垫或引擎的应用程序,mxMalloc
注册与MATLAB内存管理器分配的内存。当控制返回到MATLAB提示,内存管理器然后自动释放,或重新分配,这记忆。
你如何管理内存由这个函数取决于数据分配给它的目的。如果你将它分配给一个输出参数plhs []
使用等功能mxSetDoubles
,然后用MATLAB负责释放内存。
如果你在内部使用的数据,那么MATLAB内存管理器维护一个列表的所有内存分配函数和时自动释放内存(重新分配)控制返回到MATLAB提示。一般来说,我们建议墨西哥人文件函数摧毁自己的临时数组和自由自己的动态分配的内存。更高效的执行这个源墨西哥人清理文件比依赖自动机制。因此,当你使用完该函数分配的内存,电话mxFree
释放内存。
如果你不将数据分配给一个输出参数,和你想要持续在墨西哥人文件完成后,然后调用mexMakeMemoryPersistent
在调用这个函数。如果你编写一个墨西哥人文件与持久的记忆,然后一定要注册一个mexAtExit
函数释放分配的内存时你的墨西哥人文件被清除。
例子
看到这些例子
:matlabroot
走读生/ / mx例子
看到这些例子
:matlabroot
走读生/ / refbook例子
另请参阅
mexAtExit
,mexMakeArrayPersistent
,mexMakeMemoryPersistent
,mxCalloc
,mxDestroyArray
,mxFree
,mxRealloc
版本历史
之前介绍过的R2006a