No se si entendí bien pero creo que lo que pretendes es trabajar con la dirección de memoria en la que se almacena una variable en memoria ¿no?
es decir si tu declaras una variable como por ejemplo.
lo que quieres es poder trabajar con la direccion en la que el compilador la almacena ¿voy bien?
la misma que se imprime con:
printf("Posicion en memoria: %p, &t);
Para hacer esto existe lo que se llaman punteros que es una forma de declarar variables no por valor si no mediante la direccion que las contiene.
deberias definir la variable como:
de forma que "var" ahora contiene la direccion de memoria.
Por supuesto para poder asignar luego un valor que almacenar en esa direccion deberas guardar espacio con la funcion malloc
y para asignar el valor debes aclarar que quieres acceder al contenido con * de nuevo.
ejemplo:
dice que la variable var contendra lo que halla en la direccion de memoria 123.
dice que la variable var que apunta a la direccion que tenga contiene el valor 123.
Mucho rollo ¿no?
te recomiendo que mires algun manual sobre punteros que te lo esplicaran mejor que yo.
Existe otro método de conocer el valor de la direccion. que es con el operador &.
igual que en el printf que tenias antes
printf("Posicion en memoria: %p, &t);
la variable definida de forma normal "t" queda modificada y con este operador se devuelve su dirección.
Puedes guardarla despues en una variable del tipo long por ejemplo:
{
...
int t;
long direc;
direc=&t;
...
}
direc ahora contendra el valor de la direccion de t.
Bueno ante todo espero que esta fuera tu duda y que no te este dando la chapa.
dime si te ayudó
saludos