掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ctrl + v のエミュレーション (ID:52216)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>INPUT構造体の配列を引き伸ばしてあげたいのですが あとから配列を引き伸ばす事を前提とするより、 最初から必要と思われる十分な量を確保する方がいいです。 newを使ってメモリを確保する場合、この場合なら私は次のようにします。 INPUT *KeyInputs=NULL;//作成したメモリ領域へのポインタを受け取るポインタ変数 try{//例外ブロック KeyInputs=new INPUT[4];//メモリ確保 } catch(...){ return;//失敗時の処理 } ...//確保したメモリを使う処理 delete[] KeyInputs;//メモリの開放 >関数化なので構造体をグローバルな変数で >使わないと、呼び出しでローカルな構造体を >渡して、またこれを戻り値で呼び出し元に >返してあげないとダメですので ポインタやクラス経由で受け取れば戻り値に返す必要はないです。 この関数をクラスメンバにすれば、変数をグローバルに出す必要もありませんし、 必要ならKeyInputsの再確保を適切なタイミングで実行することもできます。 KeyInputsの再確保をするような関数とともにクラス化してはいかがですか? その場合上記の INPUT *KeyInputsはクラスメンバとして宣言し、 newはコンストラクタ、 deleteはデストラクタで行います。 >void KeybdInput(Byte VKey, Bool Flags){ 下の呼び出し方から考えると、Bool型はbool型ですよね?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.