質問者のレベル
プログラミングを初めて2ヶ月程度。
学習しているのは、C, Python, html, css, jsです。
質問内容
void *型に関してですが、
関数の引数として利用する場合はvoid *型にすることで汎用的なポインタ値を受け取れると思うのですが、
関数内で利用する場合は必ずキャストする必要があるのでしょうか?
(渡されたポインタ値の型がわからず、メモリのサイズが不明だから?ですかね?)
またその場合、どのような型が渡されるか分からないため、
キャストする際の型指定など何か方法や通例があるのでしょうか?
例えば下記のページにあるmem系の関数はvoid *型で受け取り、
関数内でunsigned charもしくはconst unsigned charにキャストしていますが、
これはchar型の場合メモリサイズが1byteだからでしょうか・・・?
https://qiita.com/mizcii/items/38aa405122542771a23f
沼にハマりそうな気がしており、質問させていただければと思います。
(知識がなさすぎて質問文すらうまく書けているか不安です・・・)
回答4件
あなたの回答
tips
プレビュー