メモリ内のある場所へのポインタが渡されました。void *dataLoc
です。void *からfloatへの変換
プログラムによっては、unsigned char
の束としてメモリが転送されています。ここで、0x00は0であり、0xFFは1です。
私は、例えば4番目のすべての文字を引っ張って、表現するはずの数字のfloat
に変換したいと考えています。しかし、私はvoid *
からchar[]
の配列にfloat[]
という配列にどのようになっているのか理解できないままになっています。
私の最初に考えたのは
for(i=0,i<100,i++){
floatArray[i] = (float)(*((unsigned char *)dataLoc[4*i]))/255;
}
void *
がchar *
にキャストされたような何かをすることでした。次の4番目の文字は、
がfloat
float
にchar
を変更する必要があり、*
は私unsigned char
を与える必要がありチャーポインタを間接参照forループから選択されるが、 afloat
数字の表現* 255私は必要な分数を得るために255で割ります。
これは私がタイプの「ポインタ 『のボイド』 『をのボイド』 算術演算で使用されるエラーを取得するためのポインタとオブジェクトタイプではなく、これを超えて、私は本当に自信がないんだけど、失敗しましたその行の残りの部分は、私が希望の道をうまくいくこと。
誰かがこれを処理する適切な方法?あなたは警告が有効になっていたことが良い
をそれに追加するには、エラーは、無効pointers.Inにポインタ演算を行うことができないということについてでしたあなたのケースは、コンパイラがdataLoc [4 * i]の意味を知らないことを意味します。 さらに明確にするためにいくつかの行を使用してみましょう。行は安く、開発者の時間は高価です:) – foolo
@foolo OK、別のコーディングが追加されました。 – chux