i cant understand what is
invalid operands to binary & (have ‘char *’ and ‘int’)
You cannot apply binary and (&) operator on the types int and char *.
So your code is "similar" to this below:
char * myString = "test";
int i = 3;
if (i & myString) // main.c:7:11: error: invalid operands to binary & (have ‘int’ and ‘char *’)
How to fix this? Review your code, what you're doing is incorrect.
If you really want to apply a binary operation on a memory address, cast it to an (unsigned) int before.
If you want a more specific answer, you'll need to share your code.