メソッド内のポインターで操作を行うと、機能します。しかし、別のメソッドで引数として使用すると、同じ操作は失敗します。明らかに欠けているものがあります。私の推測では、何らかの理由で 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 のチュートリアルをいくつか読みましたが、これが発生する具体的な理由や解決方法がわかりません。
ありがとう