在C墨西哥人文件传递字符串
这个例子展示了如何将字符串传递给一个墨西哥人用矩阵C API函数。这个例子revord.c
接受一个特征向量并返回字符在相反的顺序。
C代码分析
查看代码,打开revord.c
在MATLAB®编辑器。
网关功能,mexFunction
创建一个C字符串从输入变量,prhs [0]
。通过孤立的变量类型mxArray
从计算子程序,revord
,可以避免做出重大改变你原来的C和c++代码。
将输入参数prhs [0]
一个c风格的字符串input_buf
。
input_buf = mxArrayToString (prhs [0]);
分配内存为输出参数,output_buf
,一个c风格的字符串。
output_buf = mxCalloc (buflen sizeof (char));
输出参数的大小相当于输入参数的大小。
调用计算子程序,revord
。
revord (input_buf buflen output_buf);
转换输出,output_buf
,一个mxArray
和分配plhs [0]
。
plhs [0] = mxCreateString (output_buf);
这个变量不释放内存,因为它是一个输出参数。
的mxArrayToString
函数,用于创建临时input_buf
变量分配内存;使用mxFree
函数来释放内存。
mxFree (input_buf);
构建和测试的例子
从MATLAB命令行运行以下命令。
构建的例子。
墨西哥人- vrevord.c
调用的函数。
x =“hello world”;y = revord (x)
y = dlrow olleh