在这个特定问题上,我一直在努力解决问题,并希望得到一些建议。我有以下结构:
struct MqlStr // MQL String Array
{
int len;
char *string;
};
this 被作为来自外部应用程序的指针传递给函数,如下所示:
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(复制的最后一个值)
有人能指出我正确的方向吗?