我正在尝试分配 std::vector<char>
的地址进入 char*
并且有一些问题。
代码:
void GGG:foo(std::vector<char>& MyVct)
{
char* p = &MyVct[0];
}
但是我没有得到地址。 如何获取地址并将其转换为 char*?
最佳答案
您似乎想要 MyVct
中元素的地址,而不是 vector 本身。
您可以使用 vector::data
为此目的:
char* p = MyVct.data();
编辑:如果你想修改 vector 的元素,你不必真的得到它的指针。您可以使用 std::vector 提供的可用接口(interface).例如,而不是做:
char *p = MyVct.data(); // or char *p = &MyVct[0];
*p = 'a';
简单地做:
MyVct[0] = 'a'; // Use C++ way!
关于c++ - 获取STL vector C++的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13722527/