2011-07-03 6 views
1

私は簡単な質問があります。私はAllegroライブラリでC++を使用しています。C++(Allegro Library)ビットマップ2次元配列の質問

私は、次の宣言BITMAP* blocks[600][14];は、それは私が唯一時折すべて14秒の次元の全部または私は、具体的配列の一部を宣言するときにのみ使用されているスペースでを使用していた場合にスペースを無駄にするつもりされていることを確認した場合は?例えば

BITMAP* blocks[600][14]; 
blocks[0][0] = load_bitmap("brick.bmp", NULL); 
blocks[1][0] = load_bitmap("brick2.bmp", NULL); 

アムは、私がblocks[0][1]を使用していないことにより、スペースを無駄に ''、blocks[0][2]など?

おかげで、

ウィル。

答えて

3

C++では、配列は連続していますので、使用しない場合は追加要素を '無駄にしています'。

しかし、あなたが浪費しているのは、単一のポインタ(64ビットマシンでは8バイト)だけです。実際のビットマップデータではありません。つまり、600x14の配列にBITMAP *要素を1つだけ使用しても、67Kバイトを無駄にしてしまいます。現代のデスクトップマシンではそれほど膨大ではありません。

+0

あなたの答えをありがとう、正確に私が必要としたもの。私は11分後に「受け入れられた答え」とマークします(それまでは私にそれをさせません)。 –

+0

@ウィル:ありがとう:) – DaveR

+0

あなたの答えを延長してくれてありがとう、便利です!あなたの元の回答が私の心を変えましたが、あなたの内線はそれを再び変更します! –