初始化使得指针来自整数而没有C中的强制转换[默认启用]错误

时间:2016-02-13 15:46:37

标签: c

我的代码中遇到以下错误。 请指导我,我的问题是什么?

void myfree(void *buf)
{
void *start = (long)ptr & PAGE_MASK;
size_t offset = (long)ptr & ~PAGE_MASK;
/* Will segfault here on double-free */
size_t len = *(size_t *)start;

错误:

    initialization makes pointer from integer without a  cast                 
   void *start = (long)ptr & PAGE_MASK;
               ^

1 个答案:

答案 0 :(得分:1)

错误意味着您正试图(看起来)将long放入void *而不进行投射。

如果不了解更多关于如何输入其他变量的话,很难再建议你。

这样的事情应该更接近你想要的东西。

void * start = (void*) ((long) ptr & PAGE_MASK);