动态连接指针

时间:2018-01-15 17:43:56

标签: c arrays pointers concat

我必须编写一个连接两个整数数组的函数。第二个数组的值应该附加到第一个数组。在我的任务中,给出了函数的标题:

void concatArrays(int *numbers1, int length1, int *numbers2, int length2)

我想通过使用realloc动态扩展第一个数组的大小,然后将第二个数组复制到新内存中。但我不能这样做,因为我只有int *而不是指针指针。所以我不能使用malloc,calloc或realloc。如何在不改变函数头的情况下编写这样的函数?

1 个答案:

答案 0 :(得分:0)

void concatArray(int** n1, int l1, int* n2, int l2)
{
  int size = (l1 + l2);
  int *test = realloc(*n1, size * sizeof(int));

  if(test == NULL)
  {
    return;
  }

  *n1 = test;

  for(int i = l1; i < size; i++)
  {
    (*n1)[i] = n2[i - l1];
  }
}

I will use this code for the function. The assignment is wrong.