Hello Stefano,
You'll need to cast the address value to an "int" type to avoid a type mis-match error. 
The following should work:
int myvariable;
int somearray[2];
void main(void) {
myvariable = (int)(&somearray);
// now to use "myvariable" as a pointer....
*(  (int *)myvariable ) = 20;      // places "20" at somearray[0];
}
Note that using pointers that are built by casting can lead to very difficult-to-find bugs.  This usually occurs when incrementing or decrementing the pointer.
Frank