#include <stdio.h>
// data1の後ろにdata2を連結する関数
void cat_data(int *data1, const int *data2, int len2)
{
int i;
for (i = 0; i < len2; i++) {
data1[2 + i] = data2[i]; // data1の後ろにdata2をコピー
}
}
int main(void)
{
int data1[7] = {1, 2}; // 最初は2個のみ値が入っている
int data2[5] = {3, 4, 5, 6, 7};
// sizeof演算子でdata2の長さを求める
int len2 = sizeof(data2) / sizeof(data2[0]);
// 連結処理
cat_data(data1, data2, len2);
// 連結後のdata1を出力
for (int i = 0; i < 7; i++) {
printf("data1[%d] = %d\n", i
, data1
[i
]); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBkYXRhMeOBruW+jOOCjeOBq2RhdGEy44KS6YCj57WQ44GZ44KL6Zai5pWwCnZvaWQgY2F0X2RhdGEoaW50ICpkYXRhMSwgY29uc3QgaW50ICpkYXRhMiwgaW50IGxlbjIpCnsKICAgIGludCBpOwogICAgZm9yIChpID0gMDsgaSA8IGxlbjI7IGkrKykgewogICAgICAgIGRhdGExWzIgKyBpXSA9IGRhdGEyW2ldOyAgIC8vIGRhdGEx44Gu5b6M44KN44GrZGF0YTLjgpLjgrPjg5Tjg7wKICAgIH0KfQoKaW50IG1haW4odm9pZCkKewogICAgaW50IGRhdGExWzddID0gezEsIDJ9OyAgICAgICAgICAgICAgLy8g5pyA5Yid44GvMuWAi+OBruOBv+WApOOBjOWFpeOBo+OBpuOBhOOCiwogICAgaW50IGRhdGEyWzVdID0gezMsIDQsIDUsIDYsIDd9OwoKICAgIC8vIHNpemVvZua8lOeul+WtkOOBp2RhdGEy44Gu6ZW344GV44KS5rGC44KB44KLCiAgICBpbnQgbGVuMiA9IHNpemVvZihkYXRhMikgLyBzaXplb2YoZGF0YTJbMF0pOwoKICAgIC8vIOmAo+e1kOWHpueQhgogICAgY2F0X2RhdGEoZGF0YTEsIGRhdGEyLCBsZW4yKTsKCiAgICAvLyDpgKPntZDlvozjga5kYXRhMeOCkuWHuuWKmwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCA3OyBpKyspIHsKICAgICAgICBwcmludGYoImRhdGExWyVkXSA9ICVkXG4iLCBpLCBkYXRhMVtpXSk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0KCg==