Saya mencoba menggunakan std::vector
sebagai char
array.
Fungsi saya menerima pointer kosong:
void process_data(const void *data);
Sebelumnya saya hanya menggunakan kode ini:
char something[] = "my data here";
process_data(something);
Yang bekerja seperti yang diharapkan.
Tapi sekarang saya perlu dinamika std::vector
, jadi saya mencoba kode ini sebagai gantinya:
vector<char> something;
*cut*
process_data(something);
Pertanyaannya adalah, bagaimana cara meneruskan vektor char ke fungsi saya sehingga saya dapat mengakses data mentah vektor (tidak peduli format apa itu - mengapung, dll.)?
Saya mencoba ini:
process_data(&something);
Dan ini:
process_data(&something.begin());
Tapi itu kembali pointer ke data yang omong kosong, dan yang terakhir memberikan peringatan: warning C4238: nonstandard extension used : class rvalue used as lvalue
.
vector<bool>
yang merupakan pengecualian untuk jawaban ini (dan tidak memiliki penyimpanan memori yang berdekatanbool
s).