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