#include <stdio.h>
#define SIZE1 7
#define SIZE2 5
void cat_data(int *data1, int len1, int *size1, const int *data2, int len2) {
int i;
int remain = len1 - *size1;
int copy_len = (len2 < remain) ? len2 : remain;
for (i = 0; i < copy_len; i++) {
data1[*size1 + i] = data2[i];
}
*size1 += copy_len;
}
int main(void) {
int data1[SIZE1] = {1, 2};
int data2[SIZE2] = {3, 4, 5, 6, 7};
int size1 = 2;
cat_data(data1, SIZE1, &size1, data2, SIZE2);
for (int i = 0; i < size1; i++) {
printf("data1[%d] = %d\n", i
, data1
[i
]); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNkZWZpbmUgU0laRTEgNwojZGVmaW5lIFNJWkUyIDUKCnZvaWQgY2F0X2RhdGEoaW50ICpkYXRhMSwgaW50IGxlbjEsIGludCAqc2l6ZTEsIGNvbnN0IGludCAqZGF0YTIsIGludCBsZW4yKSB7CiAgIAogICAgaW50IGk7CiAgICBpbnQgcmVtYWluID0gbGVuMSAtICpzaXplMTsgCiAgICBpbnQgY29weV9sZW4gPSAobGVuMiA8IHJlbWFpbikgPyBsZW4yIDogcmVtYWluOyAKICAgIAogICAgZm9yIChpID0gMDsgaSA8IGNvcHlfbGVuOyBpKyspIHsKICAgICAgICBkYXRhMVsqc2l6ZTEgKyBpXSA9IGRhdGEyW2ldOwogICAgfQogICAgKnNpemUxICs9IGNvcHlfbGVuOyAKfQoKaW50IG1haW4odm9pZCkgewogICAgaW50IGRhdGExW1NJWkUxXSA9IHsxLCAyfTsgCiAgICBpbnQgZGF0YTJbU0laRTJdID0gezMsIDQsIDUsIDYsIDd9OwogICAgaW50IHNpemUxID0gMjsgCiAgICAKICAgIGNhdF9kYXRhKGRhdGExLCBTSVpFMSwgJnNpemUxLCBkYXRhMiwgU0laRTIpOwogICAgCiAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemUxOyBpKyspIHsKICAgICAgICBwcmludGYoImRhdGExWyVkXSA9ICVkXG4iLCBpLCBkYXRhMVtpXSk7CiAgICB9CiAgICAKICAgIHJldHVybiAwOwp9