对于check(&bla);
,你正在发送指向指针的指针
void check(void* elemAddr){
char* word = *((char**)elemAddr);
printf("word is %s\n",word);
}
这个运作良好。
但是,对于check(&array);
,你只传递了指针。
void check(void* elemAddr){
char* word = *((char**)elemAddr);
char* word = *(char (*)[10])(elemAddr);
printf("word is %s\n",word);
}
完整代码--
check(array);
的代码:
void check(void* elemAddr){
char* word = *(char (*)[10])(elemAddr);
printf("word is %s\n",word);
}
int main() {
char array[10] = {'j','o','h','n'};
check((char*)array);
return 0;
}
check(&bla);
的代码:
void check(void* elemAddr){
char* word = *((char**)elemAddr);
printf("word is %s\n",word);
}
int main() {
char array[10] = {'j','o','h','n'};
char* bla = array;
check(&bla);
return 0;
}
&array
的类型不是char**
。 - BLUEPIXYarray == &(array[0])
@BobJarvisarray == &(array[0])
- Ioane Sharvadze