主要内容

mxCalloc (C和Fortran)

动态内存分配的数组,初始化为0,使用MATLAB内存管理器

C语法

#包括“矩阵。h”# include < stdlib。h > void * mxCalloc (mwSize n, mwSize大小);

Fortran语言的语法

# include“fintrf。h”mwPointer mxCalloc mwSize n (n、大小),大小

参数

n

分配的元素数量。这必须是一个非负数字。

大小

每个元素的字节数。(C运算符操作符计算每个元素的字节数。)

返回

指针指向的动态内存分配,如果成功。如果不成功的垫或引擎单独的应用程序,mxCalloc返回在C (0在Fortran)。如果在一个墨西哥人文件失败,墨西哥人文件终止和控制返回到MATLAB®提示。

mxCalloc失败时没有足够的可用堆空间。

描述

mxCalloc分配连续的堆空间足够n的元素大小每个字节,并初始化这个新分配的内存0。在MATLAB应用程序分配内存,使用mxCalloc而不是ANSI®Ccalloc函数。

在墨西哥人的文件,但不垫或引擎的应用程序,mxCalloc注册与MATLAB内存管理器分配的内存。当控制返回到MATLAB提示,内存管理器然后自动释放,或重新分配,这记忆。

你如何管理内存由这个函数取决于数据分配给它的目的。如果你将它分配给一个输出参数plhs []使用等功能mxSetDoubles,然后用MATLAB负责释放内存。

如果你在内部使用的数据,那么MATLAB内存管理器维护一个列表的所有内存分配函数和时自动释放内存(重新分配)控制返回到MATLAB提示。一般来说,我们建议墨西哥人文件函数摧毁自己的临时数组和自由自己的动态分配的内存。更高效的执行这个源墨西哥人清理文件比依赖自动机制。因此,当你使用完该函数分配的内存,电话mxFree释放内存。

如果你不将数据分配给一个输出参数,和你想要持续在墨西哥人文件完成后,然后调用mexMakeMemoryPersistent在调用这个函数。如果你编写一个墨西哥人文件与持久的记忆,然后一定要注册一个mexAtExit函数释放分配的内存时你的墨西哥人文件被清除。

例子

看到这些例子matlabroot走读生/ /墨西哥人例子:

看到这些例子matlabroot走读生/ / refbook例子:

看到这些例子matlabroot走读生/ / mx例子:

版本历史

之前介绍过的R2006a