fork download
  1. #include <stdio.h>
  2.  
  3. void cat_data(int *data1, const int *data2, int len2);
  4.  
  5. int data1[7] = {1, 2};
  6.  
  7. int main() {
  8. int data2[5] = {3, 4, 5, 6, 7};
  9.  
  10. int len2 = sizeof(data2) / sizeof(data2[0]);
  11.  
  12. cat_data(data1, data2, len2);
  13.  
  14. printf("連結後のdata1\n");
  15. for (int i = 0; i < 7; i++) {
  16. printf("data1[%d] = %d\n", i, data1[i]);
  17. }
  18.  
  19. return 0;
  20. }
  21.  
  22. void cat_data(int *data1, const int *data2, int len2) {
  23. int i;
  24.  
  25. int len1 = 0;
  26. for (i = 0; i < 7; i++) {
  27. if (data1[i] != 0)
  28. len1++;
  29. else break;
  30. }
  31.  
  32. int copy_len = 7 - len1;
  33. if (copy_len > len2) copy_len = len2;
  34.  
  35. for (i = 0; i < copy_len; i++) {
  36. data1[len1 + i] = data2[i];
  37. }
  38. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
連結後のdata1
data1[0] = 1
data1[1] = 2
data1[2] = 3
data1[3] = 4
data1[4] = 5
data1[5] = 6
data1[6] = 7