我有以下代码。我有一个名为SendBookDiffs(MTBookDiff * bookdiffs,UINT bookdiffs_total)的方法,我想使用它。该方法的描述是“此方法接受MTBookDiff结构数组,计算'bookdiffs_total'元素。”将一个结构数组传递给函数
所以我已经试过如下:
MTBookDiff *bookdiffs;
MTBookItem items[128];
bookdiffs->items = items;
但我遇到了一个“错误C2106:‘=’:左操作数必须是左值”的错误。根据一些答复,我已经尝试过
memcpy(bookdiffs->items, items, sizeof(bookdiffs->items));
但是有没有正确的方法来执行它?谢谢! 已编辑:简化问题。基于该
#define MAX_PATH 260
enum EnMTAPIConstants
{
MT_SYMBOL_LEN =32,
MT_BOOK_DEPTH =32,
MT_ADDRESS_LEN =64,
MT_NEWSUBJECT_LEN =256,
MT_NEWSCATEGORY_LEN =256,
MT_LOGIN_LEN =64,
MT_PASSWORD_LEN =64,
MT_PARAMS_LEN =256,
MT_DESCRIPTION_LEN =MAX_PATH
}
struct MTBookItem
{
enum EnBookItemType
{
ItemReset=0,
ItemSell =1,
ItemBuy =2
};
UINT type;
double price;
INT64 volume;
UINT reserved[8];
};
struct MTBookDiff
{
wchar_t symbol[MT_SYMBOL_LEN];
MTBookItem items[MT_BOOK_DEPTH*4];
UINT items_total;
UINT reserved[64];
};
MTBookDiff *bookdiffs;
MTBookItem items[128];
bookdiffs->items = items;
您无法使用赋值来复制数组。 复制数组(使用std :: copy)或使用矢量 – Anycorn 2010-07-26 06:40:05