Я хочу написать функцию, которая создает копию двойного массива с помощью указателей. Это мой код до сих пор:C - malloc - неверное преобразование из void * в double *
#include <stdio.h>
#include <stdlib.h>
double* copy (double *array, int size)
{
double *v=malloc(sizeof(double)*size);
for (int i=0; i<size; i++)
*(v+i)=*(array+i);
return v;
}
int main()
{
//double array[];
int size;
printf ("size= "); scanf ("%i",&size);
double *array=malloc(sizeof(double)*size);
for (int i=0; i<size; i++)
scanf("%f",&array[i]);
copy(array,size);
free(array);
}
У меня есть 2 ошибки компиляции, которые я не могу избавиться. Я получаю
недопустимое преобразование из пустоты * двойной *
при попытке выделить память с помощью таНос, но я не могу понять, что я делаю неправильно.
Похоже, вы используете компилятор C++ вместо C. – Barmar
Как вы компилируете? Похоже, что вы можете использовать компилятор 'C++' –
C позволяет конвертировать указатели 'void *' в/из любого другого типа указателя. C++ требует явного приведения. – Barmar