私は基本的に2倍の配列を持っています。この配列を短いintとして扱う関数(ProcessData)に渡したいと思います。短いポインタを作成してそれを配列に指し示してから、このポインタを関数ok(コード1)に渡しますか?あるタイプの配列を別のタイプに変換する
これは短い配列を作成し、各要素を反復し、double配列の各要素をshortに変換してから短い配列ポインタ(コード2)を渡すのと同じですか?様々な意見が述べたように感謝
//code 1
//.....
short* shortPtr = (short*)doubleArr;
ProcessData(shortPtr);
..
//code 2
//...
short shortArr [ARRSIZE];
int i;
for (i = 0; i < ARRSIZE; i++)
{
shortArr[i] = (short)doubleArr[i];
}
ProcessData(shortArr);
いいえ、それはいいです。それは同じことではありません。 –
「ここでは2倍のシーケンスがありますが、代わりに短いintのシーケンスであるとふりをしてください。 – juanchopanza
'double'が8バイト、' short'が2バイトの場合、それぞれの 'double'を4つの無関係な部分にスライスします。 –