我正在try 将一个动态分配的数组(addVec
)的元素复制到内存中的另一个(array
)中,在将指向该数组的指针从main
传递到一个为addVec
赋值的函数(changeArray
)之后.
到目前为止,我的方法是:
- 在
main
中动态分配数组(array
) - 在
changeArray()
中动态分配另一个数组(addVec
- 传递这个动态分配的数组的指针,并在changeArray中接收它.
但是,我不知道如何正确地执行步骤3和步骤4,即将addVec
的元素复制到array
中.
void changeArray(double** vec1)
{
double* addVec = (double*)calloc(SIZE, sizeof(double));
double num = 1.0;
for (int i = 0; i < SIZE; ++i)
{
*(addVec + i) = num;
num = num + 1;
}
printf("Printing out addVec: \n");
for (int i = 0; i < SIZE; ++i)
{
printf("%.1f ", *(addVec + i));
}
printf("\nNow we want to copy elements from addVec to vec1.\n");
// Step 4
for (int i = 0; i < SIZE; ++i)
{
**(vec1 + i) = *(addVec + i);
}
free(addVec);
}
int main()
{
double* array = (double*)malloc(SIZE * sizeof(double));
double num = 11.0;
for (int i = 0; i < SIZE; ++i)
{
*(array + i) = num;
num = num + 1;
}
printf("The address of array is: %x \n", array);
changeArray(&array);
printf("The array is now: 1, 2, 3... \n");
for (int i = 0; i < SIZE; ++i)
{
printf("%.1f ", *(array + i));
}
free(array);
return 0;
}