[解決済み] alloc、malloc、alloca - 違いは何ですか?
質問
という印象を持ちました。
alloc
を呼び出すと)Objective-Cでは
[anyObject alloc]
は、実際にはC言語の関数
malloc
で、ヒープにメモリが確保されるのですが、これに対する答えがどこにも見つかりませんでした。
また
alloc
を発見しました。
alloca
で、スタックにメモリが確保されます。もし私が間違っていなければ
alloc
は、オブジェクトを作成するためにヒープにメモリを確保します。
では
alloc
と
malloc
(そして
alloca
)? どなたか要約してください。
どのように解決するのですか?
alloc()
は標準のCライブラリ関数ではありません。一部の古いコンパイラやライブラリには
<alloc.h>
ライブラリは、いくつかのメモリ割り当て関数を提供しますが、これは標準的なものではありません。Microsoft Visual C++ ランタイムには
Alloc()
と多少似ている関数です。
malloc()
しかし、これもC言語の標準には含まれていない。
malloc()
はプロセスヒープ上にメモリを確保します。を使用して割り当てられたメモリは
malloc()
を使用して解放されるまでヒープ上に残ります。
free()
.
alloca()
は、現在の関数のスタックフレーム内でメモリを確保します。を使用して割り当てられたメモリは
alloca()
は、現在の関数が戻ったときにスタックから削除されます。
alloca()
は少量のアロケーションに限られます。
という状況
alloca()
が適切であることは稀です。ほとんどすべての場面で
malloc()
を使用してメモリを確保します。
関連
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】c - 警告:関数 'printf'の暗黙の宣言
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] mallocの結果はキャストするのですか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] ++iとi++の違いは何ですか?
-
[解決済み] mallocとcallocの違い?
-
[解決済み] なぜalloca()の使用はグッドプラクティスとみなされないのでしょうか?
-
[解決済み】なぜC++プログラマは'new'の使用を最小限に抑えなければならないのでしょうか?
-
[解決済み] C言語で変数はメモリのどこに格納されていますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー:cの入力の最後に期待される宣言またはステートメント
-
[解決済み] Connect: ソケット以外でのソケット操作
-
[解決済み】"Expected expression before ' { ' token"(トークンの前に期待される式)。
-
[解決済み】ISO C90では、C言語での宣言とコードの混在が禁止されています。
-
[解決済み】C言語におけるファイルスコープでの可変長配列の変更
-
[解決済み】「無効なイニシャライザー」と表示されるのですが、何が間違っているのでしょうか?
-
[解決済み】エラー。非スカラー型への変換を要求された
-
[解決済み】C言語で入力が整数型かどうかチェックする
-
[解決済み】シンプルなC言語のscanfが機能しない?重複
-
[解決済み】配列型char[]が代入できない [重複]。