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

bod*_*ydo 4 c++ memory malloc pointers vector

我移动我的代码std::vector<char>而不是使用char *mem = malloc(...)但现在我遇到的问题是我只能operator []通过指针访问矢量数据.

我不能写像这样的东西:

std::vector<char> data;
fill_data(data);
char *ptr = data;
Run Code Online (Sandbox Code Playgroud)

在我这样做之前:

char *data = malloc(100);
fill_data2(data);
char *ptr = data;
Run Code Online (Sandbox Code Playgroud)

任何想法,如果它仍然可以访问vectorvia指针中的数据?

谢谢,Boda Cydo.

ste*_*anv 9

访问矢量数据的标准方法是使用

&data[0]
Run Code Online (Sandbox Code Playgroud)

  • 在将来,C++ 0x将添加一个`data()`成员来稍微更明确地执行此操作. (4认同)
  • 但要注意矢量的重新分配. (4认同)