PSP xvi

PSPプログラミングを教えるブログ(本気で頑張る人アクセス大歓迎サイト)

PSP-X.gif

記事の間違いを報告  新アップローダー
記事修正情報 PSPプログラミング資料 自作ゲーム PSP用エミュレータ リンク

公認リンク
公式PSP専科 公式PSVita専科 はじめるPSPSDK PSP EXEC GAME M@STER PSP 猫山のYouTubeチャンネル

TAG
全記事にタグをつけています  http://nekoyama2gillien.blog36.fc2.com/?tag=タグ
PSP PSPプログラミング DXライブラリPortable OSLib ショートプログラム ハローワールド
PSP自作ゲーム PSP自作ソフト エミュレータ ゲームアーカイブス PSP動画
動画 初音ミク ミクミクダンス MMDドラマ ゲーム 魔法少女まどか☆マギカ 侵略!イカ娘
アイドルマスター

このブログについて

このブログでは、非公式のPSPソフト、いわゆる自作ソフト( PSP Homebrew )を作る事を目的とします。

著作権などの こまかい利用規約については、こちらを開いてお読み下さい

このブログについて知りたい方、初めて来訪された方はこちらを開いてお読みください
お問い合わせは 猫山猫宗(nekomune@gmail.com)までどうぞ


当ブログはリンクフリーです。ブログ名は、アルファベットで「PSP xvi」と書いて『ピーエスピー・エクシビ』とお読みください。
相互リンクを希望されるブログ運営者様は、ココで申請して下さい。


このブログで全記事から探し物の方は、ここをクリックして下さい。
http://nekoyama2gillien.blog36.fc2.com/?all

スポンサーサイト 

--/--/--
--. --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[edit]

CM: --
TB: --

page top

ファイル操作編 - ファイルサイズ分のメモリを確保する

ファイルからデータを読み込む際、メモリを必要分 確保しておかないと、メモリの内容は保障されません。
メモリを確保しておかないと、データを上書きされたり、消されたりされる可能性があります。


メモリの確保(割り当て)
アロケーション(allocation)は、『割り当てる』という意味ですが、メモリの確保ですよ?

ちゅうい  以下のプログラムは、試作段階なので、実用には向いていません


char *ptr; // メモリ確保用のポインター変数 兼、メモリハンドル用
// ↑↑ グローバル変数にしておくといいかも。
char *malloc( int ); // メモリ確保関数の宣言(通常は、ヘッダーファイルを include すれば宜しいかと )
long GetFileSize( FILE * ); // 前回、製作した関数の宣言。ファイルサイズを求めます


FILE *fd; // ファイルハンドル用
long fsize; // ファイルサイズ

fd = fopen( "ms0:/MUSIC/TETRIS.mp3", "r" );
if(fd == NULL)
return ERROR__FILE_NOT_FOUND; // ファイルが無かったらエラーで返ります.

fsize = GetFileSize( fd );
if(fsize == 0) // ファイルサイズが 0バイトならエラーで返ります.
return ERROR__FILE_SIZE_ZERO;
else
{ // ファイルサイズが 1バイト以上ならメモリ確保処理を行ないます.
// メモリの確保は、ここからがメインです
ptr = malloc( fsize ); // メモリの確保をやってみる.
if(ptr == NULL) // メモリの確保が出来なかったら、以下
{
free(ptr); // メモリの解放.
fclose(fd); // ファイルを開いていたら、リターンの前に閉じておきましょう!
return ERROR__MEMORY_IS_NOT_ALLOC; // エラーで返ります.
}
}
// ← ここまで来れたら、ptr には、指定ファイルのサイズ分のメモリへのハンドルが得られています.

// ← この辺りには、ファイル読み込み処理とかを記述して行きます

free(ptr); // メモリの解放.
// ↑↑ コトが終わったら、メモリを解放します(重要)



解説

・malloc関数 で、必要なバイト数のメモリを確保(割り当て)します。
・この場合では、ファイルサイズ分のバイト数をメモリ確保しています。
・メモリが確保できない場合があります。
・メモリハンドルは、ちゃんと管理しておいて下さい(メモリの解放の時にも必要)。

【 関連記事 】
PSPプログラミング ファイルを開く手順をM@STERしよう!
PSPプログラミング ファイルサイズの取得をM@STERしよう!
PSPプログラミング メモリの確保(割り当て)をM@STERしよう!
PSPプログラミング ファイルの読み込みをM@STERしよう!
PSPプログラミング ファイルを閉じて・・・・・。
PSPプログラミング 忘れちゃダメよ!メモリの解放

関連記事
スポンサーサイト

[edit]

CM: 0
TB: 0

page top

この記事に対するコメント

page top

コメントの投稿

Secret

page top

トラックバック

トラックバックURL
→http://nekoyama2gillien.blog36.fc2.com/tb.php/149-548f2be5
この記事にトラックバックする(FC2ブログユーザー)

page top


h o m e |


 

2017-07