返回多维char *数组

时间:2013-06-27 12:12:41

标签: c++ arrays string data-structures char

我正在为交易工具(MultiCharts)开发实用程序DLL。该库需要使用C ++构建,以便工具使用它。我的问题是我需要编写一个可以返回类型为char*的多维数组的方法。使用char*而不是字符串的原因是该工具与字符串数据类型不兼容。因此必须使用char*(兼容)。

我已经研究了一下,发现了一些代码片段,但似乎没有一个对我有效。

char ***signals = new char**[1024];

for (int i=0; i<data.size(); i++)
{
    signals[i] = new char*[8];

    for (int j=0; j<8; j++)
    {
        string instance;
        char* result;

        instance = data[i][j];

        result = new char[instance.size() + 1];
        result[instance.size()] = 0;
        memcpy(result, instance.c_str(), instance.size());

        signals[i][j] = result;
    } 
}

上述代码段无法正常工作,只存储垃圾值。我把它作为控制台应用程序运行;这是调试信息的屏幕截图:

Image

创建的数据结构可以包含总行数= 1024和8列(系统要求)。此处使用的数据是一个向量,其中包含需要传输到工具的值。

任何人都有任何想法如何使这项工作?

1 个答案:

答案 0 :(得分:0)

可怕的是,这段代码似乎是正确的。而你的照片并不意味着垃圾,它显示了一个健康的字符串。

您的问题可能在其他地方。

另一方面:无法从函数返回C风格的数组。但是你可以返回一个char *