1

我有一个快速的问题。我将 C++ 与 Allegro 库一起使用。

如果我做出以下声明,如果我只是偶尔使用所有 14 个所有第二维,或者仅在我专门声明数组的那一部分时才使用该空间BITMAP* blocks[600][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]

谢谢,

将要。

4

1 回答 1

3

在 C++ 中,数组是连续的,所以是的,如果你不使用它们,你就是在“浪费”额外的元素。

但是,您浪费的只是一个指针(在 64 位机器上为 8 个字节);不是实际的位图数据。因此,即使您在 600x14 数组中仅使用一个 BITMAP* 元素,您也浪费了大约 67kB;在现代台式机中,这并不是一个庞大的数量。

于 2011-07-03T21:30:06.490 回答