主要内容

mxmalloc(c和fortran)

分配未初始化的动态内存马铃薯草记忆经理

C语法

#include“matrix.h”#include  void * mxmalloc(mwsize n);

Fortran语法

#include“fintrf.h”mwpointer mxmalloc(n)mwsize n

争论

N.

分配的字节数N.比...更棒0.

回报

指向分配动态内存的开始,如果成功。如果在垫子或发动机独立应用中不成功,那么mxmalloc.回报空值在c(0.在Fortran)。如果在MEX文件中不成功,则MEX文件终止并控制返回MATLAB®迅速的。

mxmalloc.当没有足够的自由堆空间时,不成功。

如果你打电话mxmalloc.在c有价值N.=0.,然后matlab返回空值或有效的指针。

描述

mxmalloc.分配足以容纳的连续堆空间N.字节。要在MATLAB应用程序中分配内存,请使用mxmalloc.而不是这一点ANSI.®CMalloc.功能。

在MEX文件中,但不是垫或引擎应用程序,mxmalloc.使用MATLAB内存管理器注册分配的内存。当控件返回MATLAB提示时,内存管理器然后自动释放,或释放,这个记忆。

如何管理由此函数创建的内存取决于分配给它的数据的目的。如果将其分配给输出参数PLHS []使用诸如mxsetdoubles.,然后matlab负责释放内存。

如果在内部使用数据,则Matlab Memory Manager将维护由函数分配的所有内存的列表,并在控制返回到MATLAB提示符时自动释放(删除)内存。通常,我们建议MEX文件功能破坏自己的临时数组并释放自己的动态分配内存。在源MEX文件中执行此清除比依赖于自动机制更有效。因此,当您使用此功能分配的内存完成时,请致电mxfree.解除内存。

如果您未将此数据分配给输出参数,并且在MEX文件完成后,您希望它持续存在,请致电mexmakememorypersistent调用此功能后。如果使用持久内存编写MEX文件,请务必注册一个Mexatexit.在清除MEX文件时,函数可用分配内存。

例子

看到这些例子matlabroot./ extern / simem / mx

看到这些例子matlabroot./ extern / example / Refbook

在R2006A之前介绍