如何将双类型数组复制到c
中的另一个双类型数组中这是代码的一部分:
int main(int argc, chae *argv[]){
double *a, *b;
int n = 20;
a = (double *)calloc(n, sizeof(double));
a = (double *)calloc(n, sizeof(double));
for (int i=0; i<n; i++ ){
a[i] =drand48();
}
}
但不使用如下的循环
for (int i=0; i<n; i++ ){
b[i] = a[i];
}
是否有任何功能可以自动执行此操作
答案 0 :(得分:1)
没有内置方法可以直接在C中复制数组。
您有两种选择:
你提到的循环:
for(i = 0; i < n; i++) {
b[i] = a[i];
}
memcpy
功能:
memcpy(b, a, n * sizeof(double));
答案 1 :(得分:-3)
您正在寻找的解决方案是memcpy(void *,void *,size_t)
memcpy(&amp; Array1 [0],&amp; Array2 [0],(Array1)的大小/(double)的大小);
在C语言中,标准指针类型到void *的类型转换是由编译器隐式完成的。因此无需担心将双指针作为参数传递。