c - 从 C 获取 MATLAB 变量(字符串)

标签 c matlab matlab-engine

我正在编写一个启动 Matlab 脚本(.m 文件)的小型 C 应用程序。 我需要交换一些变量,但我不知道如何获取 Matlab 中存在的字符数组。

我正在做这样的事情:

enter code here
result = engGetVariable(ep,"X");
if (!result)
    {
    printf ("Error...");
            exit -1;
    }

int n = mxGetN(result);

    char *varx = NULL;
    memcpy(varx, mxGetData(result),n*sizeof(char));

这是行不通的。有人知道如何在 C 中获取 Matlab 字符串吗? 我已经阅读了有关 engGetVariable() 的 Matlab 文档和提供的示例,但其中任何一个都让我明白了。

最佳答案

你的问题是你试图将 memcpy 到你从未分配的内存中。 char *varx = malloc (sizeof(char) *bytes_you_need);在你这样做之前。将 char * 设置为 NULL 意味着它没有内存地址,因此不能作为对任何内存的引用....将其设置为 malloc 的返回值,其中 malloc 已为您的数据预留了一些字节。

char *varx = malloc (sizeof(char) * n);
memcpy(varx, mxGetData(result),n*sizeof(char));
printf ("%s\n", varx);
free(varx);

关于c - 从 C 获取 MATLAB 变量(字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2690327/

相关文章:

c - 在困惑中,我们可以从 table_layout 中删除所有参与者吗?

c - 读取文本文件时C程序中的段错误

algorithm - 如何有效地对分区数组进行排序?

matlab - Buttondownfcn 不适用于 slider

c++ - MATLAB 中的数据流,输入数据来自 C++ 可执行文件

c++ - 尝试使用 header 从 C++ 访问 matlab

c - 如何将内部带有 union 的C结构转换为Delphi

构造随机 "integer"树 - 深度优先/广度优先

python - 运行 Python 命令以 ssh 到计算机并在该计算机上运行 MATLAB

c++ - MATLAB 引擎与 MATLAB 编译器创建的库?