配列std::vector
として使用しようとしていますchar
。
私の関数はvoidポインターを受け取ります:
void process_data(const void *data);
私が単にこのコードを使用する前に:
char something[] = "my data here";
process_data(something);
期待どおりに機能しました。
しかし、今はの動的性が必要なので、std::vector
代わりにこのコードを試しました。
vector<char> something;
*cut*
process_data(something);
問題は、charのベクトルを関数に渡して、ベクトルの生データにアクセスできるようにする方法です(それがどの形式であるかに関係なく、フロートなど)?
私はこれを試しました:
process_data(&something);
この:
process_data(&something.begin());
しかし、意味不明なデータへのポインタを返し、後者は警告を出しました:warning C4238: nonstandard extension used : class rvalue used as lvalue
。
vector<bool>
この回答の例外であることに注意してください(bool
sの連続したメモリストレージはありません)。