我的代码中遇到以下错误。 请指导我,我的问题是什么?
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;
^
答案 0 :(得分:1)
错误意味着您正试图(看起来)将long
放入void *
而不进行投射。
如果不了解更多关于如何输入其他变量的话,很难再建议你。
这样的事情应该更接近你想要的东西。
void * start = (void*) ((long) ptr & PAGE_MASK);