回答編集履歴

2

補足

2015/11/15 15:00

投稿

hsk
hsk

スコア728

test CHANGED
@@ -15,3 +15,9 @@
15
15
 
16
16
 
17
17
  ちなみに、mallocのような処理を自動変数として行いたい場合は _allocaという関数があります。こちらは必要量のメモリを(スタック領域から)確保しつつも、freeを書かずともスコープを抜けた時点でメモリを開放してくれます。
18
+
19
+
20
+
21
+ 呼び名としては、new や malloc は「動的割り当て(変数)」、グローバル変数などではじめから確保しておき、プロセスの消滅で消えるものは「静的割り当て(変数)」、スコープを抜けると自動で消える局所変数は「自動変数」で、いかがでしょうかね...
22
+
23
+ [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

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