I have a C program that does the following two operations:
struct element *e = (struct element*) malloc(sizeof(struct element));
long unsigned addr = (long unsigned) e;
From this, addr
has the decimal value of the pointer. I can convert addr
back to an element pointer and use that to get the element from memory.
I am wondering how many possible values addr
can be. I know the maximum value of long unsigned
is about 4.3 billion, but can I really have an addr
value of 1? Is there a certain range of numbers that I can get, and what is that range dependent on, if anything?