私はこの特定の問題について頭を悩ませてきたので、アドバイスが欲しい. 私は次の構造体を持っています:
struct MqlStr // MQL String Array
{
int len;
char *string;
};
これは、外部アプリケーションからポインターとして関数に渡されます。
MT4_EXPFUNC double __stdcall CheckExecutionRequests(MqlStr* RequestInfo)
関数内で、MqlStr 配列のさまざまな要素に割り当てる必要がある多数の文字列値を生成しています。以下はうまくいきます:
RequestInfo[1].string = "1";
RequestInfo[2].string = "2";
しかし、strcpy を使用して生成された文字列値を配列に取得すると、コピーした値で配列全体が上書きされます。例えば:
string field1 = value.substr(Demark + 1, Demark2 - Demark - 1);
strncpy(RequestInfo[1].string, field1.c_str(), field1.size());
string field2 = value.substr(Demark + 1, Demark2 - Demark - 1);
strncpy(RequestInfo[2].string, field2.c_str(), field2.size());
field1 = 1 かつ field2 = 2 の場合、RequestInfo[] 配列全体は 2 になります (最後にコピーされた値)。
誰かが私を正しい方向に向けることができますか?