0
我正在開發一個用於交易工具(MultiCharts)的工具DLL。該庫需要使用C++構建才能使用該工具。我的問題是我需要編寫一個可以返回多維數組類型的方法:char*
。使用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;
}
}
上面的代碼片段工作不正常,只存儲垃圾值。我將它作爲控制檯應用程序運行;這裏是調試信息的屏幕截圖:
創建可以具有總的行= 1024個8列(系統的要求)的數據結構。這裏使用的數據是一個具有需要傳遞給工具的值的向量。
任何人有任何想法如何使這項工作?
在C++中,不要返回'char ***'。返回'矢量<矢量>'。 –
2013-06-27 12:14:36
你在哪裏調試存儲的字符值,在發佈模式? –
@ H2CO3感謝您的評論。正如我所提到的,我有這個限制,不會讓我返回字符串數據類型。這就是爲什麼我需要使用char *。 –