[] precedência sobre o operador *

Em algum lugar no meu código, estou fazendo algo muito ruim. Estou recebendo um comportamento indefinido na minha variável extrema quando ela é executada, mas na maioria das vezes ela nem funciona. Qualquer ajuda seria muito boa.

#include <stdio.h>

void get_extrema(int quadrant, int **extrema)
{
  if (quadrant == 1)
  {
    *(extrema)[0] = 0;
    *(extrema)[1] = 90;
  }
  else if (quadrant == 2)
  {
    *(extrema)[0] = -90;
    *(extrema)[1] = 0;
  }
}

void print(int* arr)
{
      printf("%i",arr[0]);
      printf(",");
      printf("%i\n",arr[1]);
}

int main(void)
{
    int *extrema = (int*)malloc(2*sizeof(int));
    get_extrema(1,&extrema);
    print(extrema);
    get_extrema(2,&extrema);
    print(extrema);
}

Eu também tentei editar o array extremo usando aritmética de ponteiro como o seguinte:

**(extrema) = 0;
**(extrema+1) = 90;

Mas isso também não funcionou. Eu realmente não tenho idéia de onde isso está indo errado e eu realmente poderia usar alguma ajuda.

questionAnswers(2)

yourAnswerToTheQuestion