如何获取指向原始数据的std :: vector指针?

我正在尝试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);

问题是,如何将char向量传递给函数,以便可以访问向量原始数据(无论它是哪种格式–浮点数,等等)?


我尝试了这个:


process_data(&something);

和这个:


process_data(&something.begin());

但是它返回了一个指向乱码的指针,后者给出了警告:warning C4238: nonstandard extension used : class rvalue used as lvalue。


料青山看我应如是
浏览 2645回答 3
3回答

慕雪6442864

something.data()&nbsp;将返回一个指向向量数据空间的指针。

慕勒3428872

改用第一个元素的指针:process_data (&something [0]);
打开App,查看更多内容
随时随地看视频慕课网APP