char*
のポインタをOpenCLカーネルの関数int*
にタイプキャストする方法を教えてください。 ((int*) char_pointer)
を試しましたが、動作しません。openCLのchar *をint *にキャストする方法
答えて
正しいアドレススペースでポインタを修飾する必要があると思います。
アドレス空間を指定しないと、__private
が想定されますが、ソースポインタは(コメントの)__global
ポインタと思われるので、アドレススペースは互換性がありません。
(int*)
の代わりに(__global int*)
を使用してみてください。
ありがとうございました...私の問題を解決しました – sahil
スタッフ組合内のポインタ、int型*でそれを使用し、文字の*を初期化します。
union {
char *cp;
int *ip;
} ptr;
ptr.cp = allocatedBuf;
a[0] = *(ptr.ip);
醜いが、少なくともCでそれは未定義の動作ですが、キャストせずにトリックを行いますが、ねえ、あなたはハートのモニターでこれを使用していないか、反対側の核弾頭で使用していますよね?
コードが公開され、ある企業が原子力発電所でそれをいつか使用するとどうなりますか? – hochl
これはUBではないと思います。OpenCL Cは、最後に書かれたものとは異なるユニオンメンバーを明示的に読めるようにしています(少なくともサイズが一致する場合はここでそうです)。これはOpenCL CのベースとなっているC99でもそうかもしれませんが、私はそれについては分かりません。しかし、それは不一致のアドレス空間に置かれているので、とにかく問題を解決することはできません。 –
私は彼らに言ったので、彼らは私を非難することはできません。真剣に、受け入れられた答えのキャストよりも同じことが起こります。ミスアライメントされたポインタを使用すると、常に問題が発生することがあります。 – Jens
- 1. int(ソケット用)にcharを型にキャスト
- 2. Decimalをintにキャストする方法
- 3. キャスト方法(Any)? Intに
- 4. どのようにスカラにChar/Intをキャストしますか?
- 5. static_castはintをcharにキャストできますが、reinterpret_castはキャストできません。
- 6. Cで左シフト(char)0xFFを8でキャストしてそれをintにキャスト
- 7. Clojureで文字をintにキャストする方法は?
- 8. バイナリデータを読み込み、unsigned char(C++)にキャストする方法
- 9. キャストvoid * to char *
- 10. win32のCプログラミングでchar *をunsigned intに変換する方法
- 11. 演算子のオーバーロードでchar *にintを代入する方法
- 12. unsigned char *をcのunsigned int *に変換する方法は?
- 13. OpenCLの署名付き文字をunsigned charに変換する方法は?
- 14. (int型、char型**)とint型のmain(int型のargc、char型** ARGV)
- 15. structをintにキャストする
- 16. C++で正しくcharをintに変換する方法は?
- 17. C++でint値をcharに変換する方法は?
- 18. C++:キャストint to charが正しい値を出力しない
- 19. プログラム引数* charをintとして正しくキャストするには?
- 20. MySQL/Hibernate SQLQuery unsigned int(10)をsmallintにキャストする方法は?
- 21. キャストoff_t to int
- 22. Pytorchで1次元IntTensorをintにキャストする方法
- 23. C++ char配列をintに、intをchar配列に
- 24. なぜ演算子でintをcharにキャストできないのですか?
- 25. Boost FileSystem3イテレータをconst charにキャストする*
- 26. int配列のchar値を出力する方法
- 27. fscanfのcharをintとして使用する方法
- 28. structをint型にキャストするタイプ
- 29. floatをintにキャストするか、intをfloatにキャストしますか?
- 30. Cはリテラルchar '0'をint 0(ゼロ)にキャストします、どうですか?
何かエラーがありますか? – user1202136
コンパイラで厳密なエイリアシングを無効にすることを忘れないでください。厳密なエイリアシング規則のためにこのような操作は有効ではありませんが、ほとんどのコンパイラではオフにすることができます。 –
/tmp/OCLqZ3crS.cl(710):エラー:無効な型変換 a [0] = *((int *)allocatedBuf); allocatedBufの型がグローバルchar * – sahil