다음 코드가 있습니다. 나는 SendBookDiffs (MTBookDiff * bookdiffs, UINT bookdiffs_total)라는 메서드를 사용하고 싶습니다. 이 메서드에 대한 설명은 "이 메서드는 'bookdiffs_total'요소를 계산하여 MTBookDiff 구조체 배열을 허용합니다."구조체의 배열을 함수에 전달
MTBookDiff *bookdiffs;
MTBookItem items[128];
bookdiffs->items = items;
그러나 나는 "오류 C2106를 : '=': 왼쪽 피연산자는 L-값이어야합니다"발생했습니다 오류
그래서 내가 무엇을 시도하면 다음과 같다. 일부 답장에 따르면, 나는 시도했다
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