主要内容

在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

相关的话题