Yes, we can get the memory where the buffer is allocated.But, with that we are not sure that the compiler is searching for that amount of memory only.When we allocate memory using new it will return the address if it is sucessful else null.But with this we don't know actually how much it is allocating.
In case of char* a = "abcd";compiler is adding one more byte and it is placing '\0' . May be if we asked for allocating 10 bytes but internally it may take 12 bytes and in the last bytes it is storing the info. in different formatt.It is my guess.
So if we check how much memory it is allocated manually? then it will be easy.otherwise Is it possible to allocate memory at a particular address? so that we menction the address and we try to allocate memory to that particular one.