说,我在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/