簡體   English   中英

在C ++中的char數組的第一塊創建位圖

[英]Create a bitmap at the first block of a char array in c++

說,我在c ++中有一個char數組,有64個塊,每個塊分配了64個字節的內存:

char **disk = new char*[64];
for (int i = 0; i < 64; i++) {
    disk[i] = new char[64];
}

我想在char數組的第一個塊中設置一個位圖。 位圖僅包含整數。 因此disk [0]應該是位圖。 該位圖包含以太1(被占用)和0(被釋放),以指定數組中其余的塊是否被占用或空閑。 每塊1位。

但是我不知道如何為我需要的特定大小實現位圖,因為位圖也應該是64個字節,並且包含64個塊的整數,如何實現呢?

這是項目要求,因此...我無法在數組外部定義位圖。

而不是劫持數組的一部分意味着什么,您應該制作自己的類型:

struct MyType 
{
    bitmap_type bitmap;  // is this a uint64_t[8]? Or a std::bitset? Or... ?
    char data[63][64];   // or whatever dimensions
};

MyType* data = new MyType;

這樣,所有類型的用戶都知道data->bitmap是位圖,而data->data是實際數據,而不必記住data[0]是特殊的,但是x>0 data[x]是實際數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM