#include <stdio.h>
void cat_data(int *data1, const int *data2, int len2) {
for (int i = 0; i < len2; i++) {
data1[i] = data2[i];
}
}
int main(void) {
int data1[7];
int data2[5];
int start_pos = 0;
// 「値が0ではない」かつ「配列の限界を超えていない」間、次へ進む
while (data1[start_pos] != 0 && start_pos<7) {
start_pos++;
}
// この時点で start_pos は「3」になっています(10, 20, 30 の次の 0 の場所)
// 2. data2 の長さを計算
int len2 = sizeof(data2) / sizeof(data2[0]);
// 3. 関数呼び出し
// data1の先頭ではなく、「見つけた続きの場所(&data1[start_pos])」を渡す
cat_data(&data1[start_pos], data2, len2);
// 結果出力(データの切れ目まで表示)
for (int i = 0; i < 20; i++) {
// 0が出たら表示終了とする(見やすくするため)
if (data1[i] == 0) break;
printf("data1[%d] = %d\n", i
, data1
[i
]); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CnZvaWQgY2F0X2RhdGEoaW50ICpkYXRhMSwgY29uc3QgaW50ICpkYXRhMiwgaW50IGxlbjIpIHsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuMjsgaSsrKSB7CiAgICAgICAgZGF0YTFbaV0gPSBkYXRhMltpXTsKICAgIH0KfQoKaW50IG1haW4odm9pZCkgewoJaW50IGRhdGExWzddOwoJaW50IGRhdGEyWzVdOwogIGludCBzdGFydF9wb3MgPSAwOwogICAgCiAgICAvLyDjgIzlgKTjgYww44Gn44Gv44Gq44GE44CN44GL44Gk44CM6YWN5YiX44Gu6ZmQ55WM44KS6LaF44GI44Gm44GE44Gq44GE44CN6ZaT44CB5qyh44G46YCy44KACiAgICB3aGlsZSAoZGF0YTFbc3RhcnRfcG9zXSAhPSAwICYmIHN0YXJ0X3Bvczw3KSB7CiAgICAgICAgc3RhcnRfcG9zKys7CiAgICB9CiAgICAKICAgIC8vIOOBk+OBruaZgueCueOBpyBzdGFydF9wb3Mg44Gv44CMM+OAjeOBq+OBquOBo+OBpuOBhOOBvuOBme+8iDEwLCAyMCwgMzAg44Gu5qyh44GuIDAg44Gu5aC05omA77yJCgogICAgLy8gMi4gZGF0YTIg44Gu6ZW344GV44KS6KiI566XCiAgICBpbnQgbGVuMiA9IHNpemVvZihkYXRhMikgLyBzaXplb2YoZGF0YTJbMF0pOwoKICAgIC8vIDMuIOmWouaVsOWRvOOBs+WHuuOBlwogICAgLy8gZGF0YTHjga7lhYjpoK3jgafjga/jgarjgY/jgIHjgIzopovjgaTjgZHjgZ/ntprjgY3jga7loLTmiYAoJmRhdGExW3N0YXJ0X3Bvc10p44CN44KS5rih44GZCiAgICBjYXRfZGF0YSgmZGF0YTFbc3RhcnRfcG9zXSwgZGF0YTIsIGxlbjIpOwoKICAgIC8vIOe1kOaenOWHuuWKm++8iOODh+ODvOOCv+OBruWIh+OCjOebruOBvuOBp+ihqOekuu+8iQogICAgcHJpbnRmKCItLS0g6YCj57WQ57WQ5p6cIC0tLVxuIik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDIwOyBpKyspIHsKICAgICAgICAvLyAw44GM5Ye644Gf44KJ6KGo56S657WC5LqG44Go44GZ44KL77yI6KaL44KE44GZ44GP44GZ44KL44Gf44KB77yJCiAgICAgICAgaWYgKGRhdGExW2ldID09IDApIGJyZWFrOyAKICAgICAgICBwcmludGYoImRhdGExWyVkXSA9ICVkXG4iLCBpLCBkYXRhMVtpXSk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=