Chcę napisać funkcję, która tworzy kopię podwójnej tablicy za pomocą wskaźników. To jest mój kod do tej pory:C - malloc - nieprawidłowa konwersja z void * na podwójne *
#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);
}
mam 2 błędy kompilacji, że nie mogę się pozbyć. Mam
nieprawidłową przemianę z void * podwoić *
podczas próby przydzielić pamięci za pomocą malloc, ale nie mogę zrozumieć, co robię źle.
Wygląda na to, że używasz kompilatora C++ zamiast C. – Barmar
Jak się kompilujesz? Wygląda na to, że używasz kompilatora 'C++' –
C, który pozwala na przekonwertowanie 'void *' na/z dowolnego innego typu wskaźnika. C++ wymaga jawnej obsady. – Barmar