scanf не принимает "адрес оператора (&)".Требуется указатель .Чаще всего указатель на выходную переменную получается с помощью оператора address-of в вызове scanf, например,
int i;
scanf("%i", &i);
printf("number is: %d\n", i);
Но это не единственный способ сделать это.Следующее также верно:
int* iPtr = malloc(sizeof(int));
scanf("%i", iPtr);
printf("number is: %d\n", *iPtr);
Так же:
int i;
int iPtr = &i;
scanf("%i", iPtr);
printf("number is: %d\n", i);