The stack is a purely unmanageable implementation detail. The processor needs a stack to do something, it cannot run any code without problems without it. It is highly thread-bound, another unmanageable information about regular CLR hosts.
It is located in the memory where the OS kernel decided to allocate it when creating the stream, it is random. Intentionally randomly making malware difficult, the stack is an attractive way to turn data into malicious code. Not only a random location, but the exact offset within the stack segment where the start begins is random.
, GC . , . , - .NET, , CLR , . , . , - :)