无法从char *转换为void **

托尼

我修改了以下代码

void aligned_free(void *p) {
    free(((void**) p)[-1]);
}

void aligned_free(void **p) {
    free((p)[-1]);
}

带函数调用

char* a = (char*)aligned_malloc(10000,64);
aligned_free(a);

并且编译器给出错误“无法从char *转换为void **”。为什么指针char *无法转换为void **,但是void *可以吗?

威廉·珀塞尔

void *是通用指针。类型的对象void *可以指向任何东西。void **但是,A只能指向type的对象void *Achar不是void *,因此转换失败。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档