メモリを割り当てているとします。割り当てられたメモリを別のタイプとして扱う
char* buffer = (char*)my_malloc(2062);
ヘッダーという名前の定義済み配列から最初の14バイトにchar値を割り当てます。
memcpy(buffer, header, 14);
次に、割り当てられた残りの領域をfloatへのポインタとして扱いたいと思います。
float* float_buffer = (float*)(buffer + 14);
some_function(float_buffer);
その後、ある時点ですべてのデータを送信する必要があります。
transmit(buffer);
my_free(buffer);
この正しい方法でメモリを扱うことはできますか?浮き*キャストは大丈夫ですか?私は価値を失い、正しい結果を得られない問題を抱えています。 私の質問です: 割り当てられたメモリを別の種類として扱う必要があるが、処理の最後にchar *として送信する必要がある場合.....これは正しい方法ですか?
私はptr値をチェックしました。これらはfloat *とchar *のときは同じですが、正しい結果が得られません。
私の制限の1つは、静的バッファから最初に1ブロックのメモリしか割り当てることができないということです。そのため、別のmallocを別の型(float *)として呼び出すことはできません。
アライメントの問題があるように私に聞こえます。予想される結果と実際のエラーを表示できますか? –
はい、それは、アライメントの問題...私が知らなかったものでした。私はここからそれを取ることができます。ありがとうございました。 –