teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

補足

2015/11/15 15:00

投稿

hsk
hsk

スコア728

answer CHANGED
@@ -6,4 +6,7 @@
6
6
 
7
7
  クラスのメンバー変数は、クラスのインスタンス自体の記憶クラスにゆだねられるわけで(グローバル変数としてインスタンスを作成されるか、自動変数として作成されるか、別のインスタンスの中に作成されるか...)、まさしくクラスインスタンスの「メンバー(変数)」なのでしょう。
8
8
 
9
- ちなみに、mallocのような処理を自動変数として行いたい場合は _allocaという関数があります。こちらは必要量のメモリを(スタック領域から)確保しつつも、freeを書かずともスコープを抜けた時点でメモリを開放してくれます。
9
+ ちなみに、mallocのような処理を自動変数として行いたい場合は _allocaという関数があります。こちらは必要量のメモリを(スタック領域から)確保しつつも、freeを書かずともスコープを抜けた時点でメモリを開放してくれます。
10
+
11
+ 呼び名としては、new や malloc は「動的割り当て(変数)」、グローバル変数などではじめから確保しておき、プロセスの消滅で消えるものは「静的割り当て(変数)」、スコープを抜けると自動で消える局所変数は「自動変数」で、いかがでしょうかね...
12
+ [http://www.geocities.co.jp/SiliconValley-Bay/7437/c/malloc.html](http://www.geocities.co.jp/SiliconValley-Bay/7437/c/malloc.html)

1

日本語の書き方を訂正

2015/11/15 15:00

投稿

hsk
hsk

スコア728

answer CHANGED
@@ -1,6 +1,9 @@
1
- C/C++言語あたりでは、「ローカル変数」とおっしゃられている、おそらく関数のスコープの中で(スタック領域内に)メモリ確保され、スコープを抜けるとfreeやdeleteなど書かずとも自動で解放される、「自動変数」と呼ばれていますね。
1
+ 「ローカル変数」とおっしゃられている変数(関数のスコープの中で(スタック領域内に)メモリ確保され、スコープを抜けるとfreeやdeleteなど書かずとも自動で解放される)は、「自動変数」と呼ばれていますね。
2
+ ほかは「外部変数」「静的変数」の、合計3種類の「記憶クラス」があります。
2
3
 
3
- 次ページの「記憶クラス」がご参考になるかと思います。
4
+ 次ページの「記憶クラス」の記述がご参考になるかと思います。
4
5
  [http://www9.plala.or.jp/sgwr-t/c/sec12.html](http://www9.plala.or.jp/sgwr-t/c/sec12.html)
5
6
 
7
+ クラスのメンバー変数は、クラスのインスタンス自体の記憶クラスにゆだねられるわけで(グローバル変数としてインスタンスを作成されるか、自動変数として作成されるか、別のインスタンスの中に作成されるか...)、まさしくクラスインスタンスの「メンバー(変数)」なのでしょう。
8
+
6
9
  ちなみに、mallocのような処理を自動変数として行いたい場合は _allocaという関数があります。こちらは必要量のメモリを(スタック領域から)確保しつつも、freeを書かずともスコープを抜けた時点でメモリを開放してくれます。