我有一个快速的问题。我在Allegro库中使用C++。
如果我执行以下声明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]
等来“浪费”空间?谢谢,
将。
最佳答案
在C++中,数组是连续的,因此,是的,如果不使用其他元素,则是在“浪费”额外的元素。
但是,您浪费的只是一个指针(在64位计算机上为8个字节);因此,您浪费的只是一个指针。不是实际的位图数据。因此,即使在600x14阵列中仅使用一个BITMAP *元素,也要浪费〜67kB;在现代台式机中这不是很大的数目。
关于c++ - C++(Allegro库)位图二维数组问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6565675/