[td-98] add clone function for array

This commit is contained in:
hjxilinx 2020-04-10 15:06:20 +08:00
parent f843a22bb8
commit 1da0f92d84
2 changed files with 21 additions and 0 deletions

View File

@ -100,6 +100,12 @@ void taosArrayRemove(SArray* pArray, size_t index);
*/
void taosArrayCopy(SArray* pDst, SArray* pSrc);
/**
* clone a new array
* @param pSrc
*/
SArray* taosArrayClone(SArray* pSrc);
/**
* destroy array list
* @param pArray

View File

@ -160,6 +160,21 @@ void taosArrayCopy(SArray* pDst, SArray* pSrc) {
pDst->size = pSrc->size;
}
SArray* taosArrayClone(SArray* pSrc) {
assert(pSrc != NULL);
if (pSrc->size == 0) { // empty array list
return taosArrayInit(8, pSrc->elemSize);
}
SArray* dst = taosArrayInit(pSrc->size, pSrc->elemSize);
memcpy(dst->pData, pSrc->pData, pSrc->elemSize * pSrc->size);
dst->size = pSrc->size;
return dst;
}
void taosArrayDestroy(SArray* pArray) {
if (pArray == NULL) {
return;