Массив points
объявлен как двумерный массив
int points[100][100] = {{0, 3}, {2, 2}, {1, 1}, {2, 1},
{3, 0}, {0, 0}, {3, 3}};
Таким образом, используемый в выражении в качестве аргумента функции, он неявно преобразуется в указатель на свой первый элемент типа int ( * )[100]
.
Однако соответствующий параметр функции имеет тип int *
void convexHull(int point[], int n)
, поскольку параметр, объявленный как int point[]
, корректируется компилятором для объявления int * point
.
И не существует неявного преобразования типа int ( * )[100]
в тип int *
.
Более того, кажется, что это объявление
int points[100][100] = {{0, 3}, {2, 2}, {1, 1}, {2, 1},
{3, 0}, {0, 0}, {3, 3}};
не имеет смысла, потому что каждая точка "имеет только элементы twp, как, например, {0, 3}
, но не 100 элементов.
Вам нужно объявить структуру, например,
struct Point
{
int x;
int y;
};
и использовать ее в своей программе.
В этом случае массив точек может быть определен следующим образом
struct Point points[] = { {0, 3}, {2, 2}, {1, 1}, {2, 1},
{3, 0}, {0, 0}, {3, 3} };
Таким образом, объявление и определение функции должны быть изменены соответственно.