是否可以通过任何 Windows API 分配 7 个字节的内存并释放前 3 个字节以形成一个 4 字节的 block 。
最佳答案
您可以使用 memmove()
将最后四个字节移动到分配 block 的开头,然后使用 realloc()
将其缩小为四个字节。
但是为什么你会想要呢?你总是可以有另一个指向分配内存的最后四个字节的指针,如下所示:
typedef unsigned char uint8;
uint8* psevenbytes = (uint8*)malloc(sizeof(uint8) * 7);
if (psevenbytes != NULL)
{
uint8* pfourbytes = psevenbytes + 3;
// ... do stuff
free(psevenbytes);
psevenbytes = NULL;
}
或者您可以使用结构
。
关于c - 内存分配和释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5273331/