【发布时间】:2015-01-15 19:36:32
【问题描述】:
我正在编码重新实现malloc 函数。我看到一个男人的示例代码,其中有一些像这样的奇怪代码
struct s_block{
size_t size; // size per block
int free; // whether free flag exist
t_block pre;
t_block next;
void *magic_ptr;
int padding; // bytes for padding
char data[1]; // first byte of data, i.e. the address returned from malloc
};
typedef struct s_block *t_block;
t_block get_block(void *p) {
char *tmp;
tmp = p;
...
}
但我使用 gcc 或 g++ 编译此代码,错误是“不能使用 void* 指向 char* 指针的指针”。 我想知道问题出在哪里? gcc 还是 g++ ?代码错误?
【问题讨论】:
标签: c++ pointers void-pointers