データ バッファーへのプライベート unsigned char * を持つクラスがあります。データ バッファーの長さは可変なので、malloc() と free() を使用して、データを保持するために必要なメモリ量を割り当てます。
私の問題は、このデータにアクセスする必要がある別のクラスがあることです。私が現在行っている方法は、バッファの作業コピーを作成し、それを他のクラスに渡すことです。つまり、copy で指定されたバッファーに size バイトをコピーする関数 get_data(unsigned char * copy, int size) があります。バッファーは小さい (約 50 バイト) ですが、プログラムの過程でこの ALOT を実行する必要があります。その結果、これをより合理化できる方法を探しています。
データ バッファー ポインターを他のクラスに渡す方法はありますか? 彼らはバッファ内のデータを上書きできますか? データ バッファー ポインターの const コピーを送り返すことができることは承知していますが、呼び出し元は const_cast を呼び出して自由に変更できます。つまり、const_cast を呼び出してから、buf_ptr[2] = 0xFF; の行に沿って何かを呼び出すことができます。
助けてくれてありがとう。呼び出し元が何か厄介なことをした場合にデータを破損する可能性がなくても、ポインターを使用できる方法があることを願っています。