use*_*521 2 c pointers casting
只是想知道这样投射是否安全:
char **cpp;
// ... allocation and what not
void *vp = (void *)cpp;
// ...
cpp = (char **)vp;
Run Code Online (Sandbox Code Playgroud)
应该使用无效**还是无效*罚款?这对我的几个盒子没有问题,但是想知道它是否会在某些系统上引起问题.
演员总是安全的,只要指针有效,解除引用是安全的.您使用a的唯一情况void **
是,当您计划取消引用它以获得a时void *
.
但是,除非你做指针算术,否则它并不重要.正如你可以看到上http://codepad.org/UcZUA0UL它,如果你用工作正常不管void*
或void **
.在您实际使用指针之前,char **
无论如何都要将其void
强制转换- 所以它永远不会被解除引用而它是-ish.