text
プロセスの仮想アドレス空間は、プロセスの,data
およびbss
セグメントで始まります。このヒープ割り当てが配置された後、ヒープはより大きなメモリ アドレスに向かって成長します。ただし、ヒープの一部を使用する前に、メモリ ブロックを割り当てる必要がvalloc
ありsegfault
ます (など)。
スタックは、仮想アドレス空間の最初の大きなアドレスから小さな値に向かって成長します。私の知る限り、これは仮想メモリの割り当てなしで機能します。ヒープの場合にこれが不可能な場合、事前のメモリ割り当てなしでスタックを使用するにはどうすればよいですか? (同じ線形仮想アドレス空間です。)
これまでのところ、 aialloca
は と同じように実装されていsub esp, <size>
ます。しかし、スタックが使用している仮想アドレス空間の領域は、これより前に何らかの形で割り当てられているに違いありませんよね?