【发布时间】:2015-09-27 00:58:01
【问题描述】:
我有两个关于 void 指针的问题;我们有:
void * foo=malloc(99)
void **bar=(void**)malloc(99);
int i=1;
bar++;
*bar = foo;
1.上面和下面是等价的吗?
bar[i++] = foo;
如果是,则出乎意料,因为bar++; 向前移动双指针而不是单指针,这与非 void 类型不同。
2.为什么可以从void * foo();返回void**?
例如:
void * foo(){
void ** bar;
return bar;
}
【问题讨论】:
标签: c syntax void-pointers