繁体   English   中英

是否有可能将指针作为std :: vector中的连续内存片段 <char> 在C ++中?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM