我有一个快速的问题。我在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/

10-11 18:02