如何解决在C中将指针转换为双指针
我想调用一个具有以下签名的方法。
error (*handler)(obj **,const char *,void*)
由于context
变量是一个指针,因此需要将其转换为指向该指针的指针。但是,按照以下方式进行操作会引发编译错误gfserver.c:185:20: error: invalid type argument of unary ‘*’ (have ‘gfcontext_t {aka struct gfcontext_t}’)
。该指针如何转换为双指针?
obj *context = (obj *)malloc(sizeof(obj));
m->handler(**context,request,handlerarg);
解决方法
对于任何指针(或数组)p
和索引i
,表达式*(p + i)
等于p[i]
。由此得出*p
等于p[0]
。
将您的问题的上下文(无用的双关语)放入**context
等于context[0][0]
,这毫无意义。
似乎您应该使用地址运算符&
来获取指向该指针的指针。与&context
中一样。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。