如何使用C中的指针将一个数组的内容复制到另一个数组?

Vid*_*dya 1 c pointers

我有三个指针:

int *x,*y, *Temp;
Run Code Online (Sandbox Code Playgroud)

然后我就完成了

x = (int *)malloc(sizeof(int)*m);
y = (int *)malloc(sizeof(int)*n);
Temp = (int *)malloc(sizeof(int)*(m+n));
Run Code Online (Sandbox Code Playgroud)

其中m和n是某些值.

接下来,我在Temp中输入了值.

  for(i=0; i < m+n; i++) {
  scanf("%d", Temp+i);
  }
Run Code Online (Sandbox Code Playgroud)

我想要一半的温度在x,另一半在y.我该怎么做呢?

for(i=0; i < m; i++) {
  x[i] = Temp[i];
}
Run Code Online (Sandbox Code Playgroud)

上面复制内容的代码不起作用!

另外,如何打印值?

PC *_*ite 5

使用memcpy可能是实现您想要的最简单方法:

memcpy(x, Temp, m * sizeof*Temp);
memcpy(y, &Temp[m], n * sizeof*Temp);
Run Code Online (Sandbox Code Playgroud)

要打印值,只需使用printf:

puts("Values in x:");
for(int i = 0; i < m; ++i) {
      printf("%d\n", x[i]); 
}

puts("Values in y:");
for(int i = 0; i < n; ++i) {
      printf("%d\n", y[i]);
}
Run Code Online (Sandbox Code Playgroud)