将第二个数组的元素添加到第一个数组的末尾

Add elements of second array to the end of first array

本文关键字:数组 第一个 元素 第二个 添加      更新时间:2023-10-16

我得到了一个由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];

来自第二个数组(parReqData)的数据需要添加到数组1(parReq)的末尾它需要在第一个数组后面我需要创建第三个数组,其中两个数据都将在我想到了:BYTE tempArray = new BYTE[sizeof(parReq)+sizeof(parReqData)然后将两个数组复制到tempArray中,只是不知道是如何

BYTE* tempArray = new BYTE[sizeof(parReq)+sizeof(parReqData)]
memcpy(tempArray, parReq, sizeof(parReq));
memcpy(tempArray + sizeof(parReq), parReqData, sizeof(parReqData));

谢谢约翰,工作得很好!!

如果我做的都是一样的,但我使用的不是固定数组,而是指针数组,这样我就可以声明一个大小可变的数组:我有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];

抱歉,发现它是

BYTE* tempArray2 = new BYTE[nrOfSymbols*(sizeof(*parReq100)+sizeof(*parReq101))];
        memcpy(tempArray2, parReq100, (nrOfSymbols*sizeof(*parReq100)));
        memcpy(tempArray2 + (nrOfSymbols*sizeof(*parReq100)), parReq101, (nrOfSymbols*sizeof(*parReq101)));