我有一个char数组,我将其用作内存池。我已经标记了所有字节,表示它们是免费的/不是免费的。我的问题是如何为每个int分配4个字节的数组?
我认为这样做的一个很好的例子:
void* block;
char memPool[50];
block = &memPool[0];
return block;
如果我正确思考的话,这将返回一个指向一个足以容纳1个字节的位置的指针。所以也许我可以使用一个4字节的void *数组来循环遍历字节,直到我得到我传递的任何类型的sizeof。在我坐下来开始编码之前,我只是试图将这个问题记录在纸上。
我只是在寻找一些见解。感谢。
答案 0 :(得分:0)
分配的内存是连续的,因此您可以使用指针迭代索引,因此您可以拥有整个50个块。
void* block; //the pointer
char memPool[50]; //the contiguous memory location allocated
block = &memPool[0]; //the pointer is holding the address of 0th index, hence the whole memory location
return block;