Mengambil Penunjuk Data Mentah daripada std::vector
Masalah:
Anda berusaha untuk gunakan std::vector sebagai tatasusunan char dalam fungsi yang menerima penunjuk tidak sah. Percubaan untuk menghantar vektor secara langsung atau melalui pemula begin() telah mengakibatkan data atau amaran pengkompil yang salah.
Penyelesaian:
Untuk mengakses data mentah std ::vektor, dapatkan alamat elemen awalnya menggunakan salah satu daripada yang berikut kaedah:
Dalam C 11 dan seterusnya, pilihan tambahan ialah tersedia:
Contoh:
void process_data(const void *data); std::vector<char> something; // Cast the raw data pointer to char* for compatibility. char *data_ptr = reinterpret_cast<char*>(something.data()); process_data(data_ptr);
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Penunjuk Data Mentah dari std::vector?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!