说,我在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]是特殊的,但data[x]对于x>0是实际数据。

关于c++ - 在C++中的char数组的第一块创建位图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27893026/

10-14 16:53