#include <stdio.h>
void cat_data(int *data1, int *data2, int len2) {
int *p1 = data1,count = 0;
for (int i = 0; i < 7; i++) {
if (*(p1 + i) != 0) {
count++;
}
}
int remaining = 7 - count;
int copy_len = (remaining < len2);
int *insert_pos = data1 + count;
int *p2 = data2;
for (int i = 0; i < copy_len; i++) {
*(insert_pos + i) = *(p2 + i);
}
}
int main() {
int data1[7] = {1, 2, 0, 0, 0, 0, 0};
int data2[5] = {3,4, 5, 6, 7, };
int len2 = 5;
cat_data(data1, data2, len2);
int *p = data1;
for (int i = 0; i < 7; i++) {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CnZvaWQgY2F0X2RhdGEoaW50ICpkYXRhMSwgaW50ICpkYXRhMiwgaW50IGxlbjIpIHsKICAgIGludCAqcDEgPSBkYXRhMSxjb3VudCA9IDA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDc7IGkrKykgewogICAgICAgIGlmICgqKHAxICsgaSkgIT0gMCkgewogICAgICAgICAgICBjb3VudCsrOwogICAgICAgIH0KICAgIH0KICAgIGludCByZW1haW5pbmcgPSA3IC0gY291bnQ7CiAgICBpbnQgY29weV9sZW4gPSAocmVtYWluaW5nIDwgbGVuMik7CiAgICBpbnQgKmluc2VydF9wb3MgPSBkYXRhMSArIGNvdW50OwogICAgaW50ICpwMiA9IGRhdGEyOwoKICAgIAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3B5X2xlbjsgaSsrKSB7CiAgICAgICAgKihpbnNlcnRfcG9zICsgaSkgPSAqKHAyICsgaSk7CiAgICB9Cn0KCmludCBtYWluKCkgewogICAgaW50IGRhdGExWzddID0gezEsIDIsIDAsIDAsIDAsIDAsIDB9OwogICAgaW50IGRhdGEyWzVdID0gezMsNCwgNSwgNiwgNywgfTsKCiAgICBpbnQgbGVuMiA9IDU7CgogICAKICAgIGNhdF9kYXRhKGRhdGExLCBkYXRhMiwgbGVuMik7CgogICAKICAgIHByaW50Zigi6YCj57WQ5b6M44GuZGF0YTE6ICIpOwogICAgaW50ICpwID0gZGF0YTE7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDc7IGkrKykgewogICAgICAgIHByaW50ZigiJWQgIiwgKihwICsgaSkpOwogICAgfQogICAgcHJpbnRmKCJcbiIpOwoKICAgIHJldHVybiAwOwp9Cg==