開発中のオンラインゲームに関することを書き綴っています.プログラミング関係の話題が多いですが,よかったら見て行ってください.

スポンサーサイト

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

delete[]演算子の恐怖 【ゲーム開発】

 皆さんこんばんは.内藤工場長です.
 今回はプログラミングの話題です.CFOのデバッグをしていて,今更ながら重大なことに気づきました.


 C++では,メモリの動的確保にnew演算子を使います.
HogeClass *obj = new HogeClass(); ・・・1
と記述すると,objへオブジェクト1個分のメモリを割り当て,
HogeClass *obj = new HogeClass[100]; ・・・2
と記述すると,objへオブジェクト100個分のメモリを割り当てます.

 これらの変数を使用した後,メモリを解放するにはdelete演算子を使います.
delete obj; ・・・3
と記述すると,1の方法で確保したメモリを解放できます.
delete [] obj; ・・・4
と記述すると,2の方法で確保したメモリを解放できます.

 ここまでは,C++のプログラマであれば必ず知っていることです.
 ここで問題なのは,1の方法で確保したメモリを,4の方法でも解放できてしまうということです.この方法でも正常に解放されるみたいですが(?),何故かものすごいCPUパワーを食ってしまいます.うちのPen4 3.2GHzが2秒弱ビジーになる程度です.
 サーバプログラムにとってこのロスは死活問題ですので,このミスをやらかしてしまった時には少し焦りました.幸いにもすぐ発見できましたので,経験にもなってよかったです.是非プログラマの方々は気をつけてください.

 CFOの方では,またいくつか修正しました.追加・変更点は以下の通りです.
・上記のバグを修正しました.
・死亡時にWSADキーを使って観戦できるようになりました.
・自分以外の味方プレイヤーが水色で表示されるようになりました.

 以上です.続きに逝ってきます.(・x・)ゝ

テーマ : ゲーム製作 関連
ジャンル : ゲーム

2009-10-02 : ゲーム関係 : コメント : 0 : トラックバック : 0
Pagetop
コメントの投稿
非公開コメント

Pagetop
« next  ホーム  prev »

プロフィール

内藤工場長

Author:内藤工場長
 20代前半の男性で,愛知県に在住しています.HNはリネージュ2をプレイしていたときに生産職で,リアル苗字が内藤だったことに由来します.
 大学では情報工学を勉強し,独学でゲームプログラミングも覚えました.画像はサークル活動で作ったゲームのスクリーンショットです.
 中々半人前を抜け出せませんが,ゲームで起業しようと模索中です.
こんな私でも応援して下さってる方々がいらっしゃいます.感謝~~~

検索フォーム

ブロとも申請フォーム

この人とブロともになる

QRコード

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