关于一级指针强转void*的有关问题.求解答
关于一级指针强转void**的问题..求解答~char* string abcdefghijkvoid* v_str_p ((void**)string)[
关于一级指针强转void**的问题..求解答~
char* string = "abcdefghijk";
void* v_str_p = ((void**)string)[0]; //强制转换为二级指针...其实这里应该是一个 void* array[] array中每个元素都是一个void*
疑问是我如何解开 v_str_p 这个void* 指针...而拿到他实际的value...
我的想法是 *((char*)v_str_p + ?) 来拿到其中一个元素... 但是这样却不对....请高手为我解答一下 ,小弟感激不尽~~~
指针
[解决办法]
char* string = "abcdefghijk";
void* v_str_p = ((void**)string)[0];
int i = (int)v_str_p;
char* p = (char*)&i;
printf("%c%c%c%c\n", p[0], p[1], p[2], p[3]); //abcd
不要折腾自己的脑细胞咯.
[解决办法]他这样写我只想到一个原因,就是Array_T中的array其实并不是一个char*,而仅仅用来指向一个动态分配的内存块,至于内存块里面放的是什么东西,那就取决于访问代码。在上面这段代码中,这个内存块被看成是一具void*数组。(