尝试让指针指向主
中的向量struct mystruct
{
vector<string> *data;
};
int main()
{
vector<string> vec;
mystruct s;
s.data = vec;
}
通过这样做我得到“error: cannot convert std::vector<std::basic_string<char> > to std::vector<std::basic_string<char> > in initialization
”
我做错了什么?
答案 0 :(得分:3)
您不能为指针变量指定非指针(除了文字零)。您要做的是将指针的值设置为变量的地址。要获取地址,您可以使用address-of运算符:
s.data = &vec;
表达式地址的类型将是指向参数表达式类型的指针。
答案 1 :(得分:2)
我做错了什么?
您为指针变量分配了非指针变量。可以指定一个指针:
vec
不属于以上情况。您需要改为使用&vec
。
考虑一下:
string s = "string";
string *p = &s; // correct. a pointer is assigned an address.
//string *p = s; // wrong. assigned a non-pointer variable.
string *v = p; // correct. a pointer assigned to another pointer.