मैं std::vector
एक char
सरणी के रूप में उपयोग करने की कोशिश कर रहा हूं ।
मेरा कार्य शून्य सूचक में होता है:
void process_data(const void *data);
इससे पहले कि मैं बस इस कोड का उपयोग करता हूं:
char something[] = "my data here";
process_data(something);
जो उम्मीद के मुताबिक काम किया।
लेकिन अब मुझे इसकी गतिशीलता की आवश्यकता है std::vector
, इसलिए मैंने इसके बजाय इस कोड की कोशिश की:
vector<char> something;
*cut*
process_data(something);
सवाल यह है कि मैं अपने समारोह में चार वेक्टर कैसे पास करूं, ताकि मैं वेक्टर कच्चे डेटा तक पहुंच पाऊं (कोई फर्क नहीं पड़ता कि यह कौन सा प्रारूप है - फ्लोट्स, आदि)।
मैंने यह कोशिश की:
process_data(&something);
और इस:
process_data(&something.begin());
लेकिन इसने जिबरिश डेटा के लिए एक संकेतक लौटाया, और बाद वाले ने चेतावनी दी warning C4238: nonstandard extension used : class rvalue used as lvalue
:।
vector<bool>
जो इस उत्तर के लिए अपवाद है (और एस का एक मेमोरी मेमोरी स्टोरेज नहीं हैbool
)।