int main(void) {
int a=5, b=10;
printf("%d%d",a,b);
make_it(&b,&a,&(a+b)); <== Here &(a+b) returns the error.
printf("%d%d",a,b);
return 0;
}
Since you have declared a and b as integers, a+b returns an integer value (not a variable). So the unary & fails because no address is available. Check the example below:
#include <stdio.h>
int main()
{
int a=5,b=10;
printf("%d", &(a+b));
return 0;
}
$gcc -o main *.c
main.c: In function ‘main’:
main.c:7:18: error: lvalue required as unary ‘&’ operand
printf("%d", &(a+b));
^