Objective-C 基本講座

動的に記憶領域を確保し結びつける

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
必要な時に、必要なだけ記憶領域を確保するための関数であるmallocやdeallocについて学習します。
講師:
05:29

字幕

このレッスンでは 必要な時に記憶区画を 確保する方法について学習します 配列は便利なのですが 呼び出された関数側で宣言された配列を 呼び出し元に渡すことはできません 関数内で宣言した変数や配列は 関数から戻る時に片付けられるからです 実際ここにある通り Xcodeはその点を注意してきます 無理やり実行しても やはり結果は正しくありません 1,2,3と出力されるべきなのに 1 0 0となっています このような場合は malloc 関数を使い OSにメモリを要求する方法を 検討してください malloc 関数はヒープと呼ばれる領域に 記憶区画を確保して その先頭番地を戻します ヒープはスタックやグローバル変数を省いた アプリが利用可能な領域のほとんどを占めます 引数の型に使われているsize_Tは 整数型の一つで 記憶区画の大きさを指定する時に使われます 引数には確保したい区画の大きさを渡すのですが バイト単位で指定する必要があるので 例えばint 型1つなら4 double 型1つなら8を指定します この値は通常sizeofを使って求めます カッコの中に大きさを求めたい型名や変数を 指定すると必要な記憶区画の大きさが バイト単位で戻されます 例えばint と書けば int 型変数1つが必要とする 記憶区画の大きさをバイト単位 つまり4と戻してくれるわけです もし引数で指定する大きさを2倍にすれば int 型変数2つ分の区画が 確保されます 必要な要素数倍にすれば 必要な配列が確保できるので 戻り値をint 型ポインター変数で 受け取ればヒープ上に配列用の記憶区画を 確保したことになります malloc の戻り値の型は ボイド型のポインターとなっているので どのような型のポインター変数にも 代入できるようになっています OSは要求されたバイト数の記憶区画を 確保するだけでどのように使うかは プログラマーが責任を持つことになります またmalloc で確保した区画は free 関数でOS に解放を指示するまで メモリー上にとどまります 使い終わったらfree 関数で解放するのも プログラマーの責任です mallocfree 関数を使う場合は stdlib.hを includeします メモリー容量には限りがあるので 使い終わったら片付けるようにしてください そうしないと最後には小さいサイズの malloc も失敗するようになります malloc free 関数とも任意の場所 で呼び出せるのでmallocで確保し グローバル変数同様 関数間をまたがって利用することが可能です malloc は区画確保に失敗すると NULL を戻す点にも注意してください NULL は0 番地define で 定義したものですが0 番地が ヒープに使われることはありません 無効な番地でありヒープ上に 確保できなかったことを意味します 原因としては要求された区画の大きさが 現在利用可能なヒープ領域よりも 大きかった場合などが考えられます malloc 関数を使うときはif 文で このNULL のチェックをして区画確保に 失敗していないことを確認することが重要です 当然ですがNULL の場合にfree 関数 を呼び出す必要はありません それではmalloc やfree を使った 実際のプログラムをお見せします Xcode の画面に切り替えます makeArray でint 型区画を 3つOS に要求し確保できたら 自分の渡したい値を ループで設定しています 配列宣言ではないので ブレースによる代入はできません makeArray から戻される値が NULL 以外の時だけ コンソール出力するようにしています 出力が終わったらfree を呼んで 確保した記憶区画を解放しています ランするとmakeArray から 1,2,3という配列が戻ってきます このレッスンでは 必要な時に記憶区画を確保する 方法について学習しました

Objective-C 基本講座

このコースはプログラミング初心者でもObjective-CによるiOSアプリ開発の体系的な理解が得られるように構成されています。プログラムの動作の原理、Objective-C言語の役割、そこで利用されるCocoa touchオブジェクトの役割、基本的なiOSアプリの作成方法などを学習します。ぜひこのコースをアプリ開発に踏み出すさいの第一歩としてください!

6時間39分 (69 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2015年11月18日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。