any system that accesses memory as a contiguous block will have no penalty for heap versus stack access.
as an example, the default stack size for a win32 thread is 1MB, if you specify 0 for stack size when calling CreateThread(). since you cannot always be sure you are not running in a child thread (without explicitly checking for it), it's not unreasonable to expect that you might need to plan for this situation.While it is true that modern operating systems impose address quotas on processes, the quotas are usually much larger than 1MB.