【发布时间】:2015-01-03 13:36:02
【问题描述】:
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);
check(&array);
}
输出:
word is john
RUN FINISHED; Segmentation fault; core dumped;
第一个有效,但第二个无效。我不明白为什么会这样。
【问题讨论】:
-
我还添加了 '\0' 字符,但这并没有改变任何东西。
-
&array的类型不是char**。 -
我看到一个问得很好的问题,为什么投反对票?
-
&array == &array[0]。分享和享受。 -
@BobJarvis 这违反了约束(比较不兼容的类型)