我得到了一个包含结构的2个元素的数组:
typedef struct dataPar
{
unsigned long indexGroup;
unsigned long indexOffset;
unsigned long length;
} TDataPar;
TDataPar parReq[2];
typedef struct dataPar2
{
unsigned long data;
} TDataPar2;
TDataPar2 parReqData[2];
需要在array1(parReqData
)的末尾添加第二个数组(parReq
)中的数据
它需要在第一个数组后面
我需要创建一个第三个数组,其中两个数据都在
我想到了一点:BYTE tempArray = new BYTE[sizeof(parReq)+sizeof(parReqData)
然后将两个数组复制到tempArray
,只是不知道如何
答案 0 :(得分:1)
BYTE* tempArray = new BYTE[sizeof(parReq)+sizeof(parReqData)]
memcpy(tempArray, parReq, sizeof(parReq));
memcpy(tempArray + sizeof(parReq), parReqData, sizeof(parReqData));
答案 1 :(得分:1)
谢谢John,工作得很好!!
是否也可以,如果我做的几乎相同,但我使用指针数组而不是固定数组,所以我可以声明一个可变大小的数组: 我有3个阵列
struct dataPar100
{
unsigned long indexGroup;
unsigned long indexOffset;
unsigned long length;
};
struct dataPar101
{
unsigned long data;
};
unsigned short nrOfSymbols=3;
dataPar100 *parReq100 = new dataPar100[nrOfSymbols];
dataPar101 *parReq101 = new dataPar101[nrOfSymbols];
答案 2 :(得分:1)
BYTE* tempArray2 = new BYTE[nrOfSymbols*(sizeof(*parReq100)+sizeof(*parReq101))];
memcpy(tempArray2, parReq100, (nrOfSymbols*sizeof(*parReq100)));
memcpy(tempArray2 + (nrOfSymbols*sizeof(*parReq100)), parReq101, (nrOfSymbols*sizeof(*parReq101)));