c言語を勉強しています。
文字列のアドレスを可変長引数を持つ関数で取得しようとしているのですが、期待と異なる値が連携されます。
以下の形で連携していますが、printfで表示させたアドレスの値と異なる値が連携されます。
ptr = (uintptr_t)va_arg(ap, void *);
printf => 4294983526 => 0x100003f66 自分の関数 => 16234 => 3f66
16進数にしたときの数値の後の部分が同じなのも違和感があります。ポインタを取ってくるときのキャストの方法ややり方が間違っているようにも思うのですが、何が悪いのでしょうか。
よろしくお願いします。
環境は以下です。
ProductName: Mac OS X ProductVersion: 10.15.7 BuildVersion: 19H2
回答2件
あなたの回答
tips
プレビュー