[英]Is it possible to get the pointer the continous memory fragment in a std::vector<char> in C++?
我移动我的代码使用std::vector<char>
而不是char *mem = malloc(...)
但现在我遇到的问题是我只能通过operator []
访问矢量数据,而不是通过指针访问。
我不能写像这样的东西:
std::vector<char> data;
fill_data(data);
char *ptr = data;
在我这样做之前:
char *data = malloc(100);
fill_data2(data);
char *ptr = data;
如果仍然可以通过指针访问vector
数据,是否有任何想法?
谢谢,Boda Cydo。
访问矢量数据的标准方法是使用
&data[0]
当然。 该载体是为此目的而设计的:
char * p = &(myVector[0]) ;
现在,p指向向量中的第一个项目,您可以通过使用指针来访问每个项目,就像在C中一样。
您可以完全合法地编写该代码。 您需要做的就是改变fill_data以获取std::vector<T>&
。 当然,如果这是一个外部C API,那么你在这个问题上没有太多选择。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.