【问题标题】:C++ (Allegro Library) Bitmap Two-Dimensional Array QuestionC++(快板库)位图二维数组题
【发布时间】:2011-07-03 21:28:03
【问题描述】:

我有一个简单的问题。我正在将 C++ 与 Allegro 库一起使用。

如果我做出以下声明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++ allegro


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答,正是我所需要的。我会在 11 分钟内标记为“已接受的答案”(直到那时我才会这样做)。
    • 感谢您的回答扩展,也很有用!你原来的回答改变了我的想法,但你的扩展又改变了!
    猜你喜欢
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 2018-11-15
    • 2012-03-05
    • 2020-01-18
    相关资源
    最近更新 更多