My question is pretty simple and straightforward: if I have e.g. 1MB of RAM assigned to the program\'s stack, can I get the addresses of the start and the end, or the start and
GetCurrentThreadStackLimits
seems to do what you're looking for, getting the lower/upper boundaries of the stack into pointer addresses:
ULONG_PTR lowLimit;
ULONG_PTR highLimit;
GetCurrentThreadStackLimits(&lowLimit, &highLimit);
Looks like it is only available on Windows 8 and Server 2012 though.
Check the MSDN