を使用するときに型のキャストを処理する適切な方法がわかりませんmalloc
。私は、以下が完全に合法であるObjective Cから来ています:
ALuint * sources;
sources=malloc(sizeof(ALuint)*32);
ただし、C++ では、コンパイラは「互換性のない型 void * から ALuint * に割り当てています」と言います。
から返されたメモリがmalloc
特定の型としてキャストされていないことがわかり、C++ は型に厳密であることがわかります。
今、私はこれを行うことができます:
sources=(ALuint*)malloc(sizeof(ALuint)*32);
しかし、私は自分がそのような方法でキャストすることは決してないと言っているよりもはるかに賢明なコーダーを読んだことがあります。なぜだめですか?そうでない場合、いつ、どのようにして、これを機能させるのに最適な時期または方法ですか?