如果我对方法内的指针进行操作,它就可以工作。但是当在另一种方法中用作参数时,相同的操作会失败。显然我缺少一些东西。我的猜测是由于某种原因 foobar 无法“看到” *ptr 指向的变量。
int main(int argc, char *argv[]){
unsigned short b =15;
unsigned short *ptr = &b;
//If I do it in main it works
unsigned short c = 10 & (*ptr);
//If I send it to foobar, it segfaults
foobar(*ptr);
}
void foobar(unsigned short *ptr){
unsigned short c = 10 & (*ptr);
}
如果我 foobar(unsigned short b) 无法编译,我如何将我的变量传递给 foobar(通过反复试验,我发现您只能使用基本类型作为参数)。
如果有人能“指出”我的解释,我将不胜感激。我已经阅读了几个 C 教程,但我找不到发生这种情况的具体原因,或者如何解决它。
谢谢