【发布时间】:2011-10-17 20:19:54
【问题描述】:
我刚刚从 char 数组转移到 std::string 并且已经遇到了问题,我可能正在做一些非常愚蠢的事情,请随意嘲笑:
int main()
{
string * p = new string;
memset(p, 0, sizeof(string));
expected_exepath(p);
cout << p->data;
delete p;
}
错误在 p->data 中,它说“绑定到函数的指针只能用于调用函数”.. p 是 std::string,所以我不明白为什么它认为我'我试图调用一个函数。
【问题讨论】:
-
什么是
expected_exepath?调侃:就说int main() { string p; expected_exepath(p); cout << p; }。您应该尝试从您的 C++ 思维模式中去掉new表达式。在客户端代码中几乎从不需要它或很有品味。 -
可能是 expected_exepath 采用了 OP 试图填充的 char* 缓冲区。只是猜测......
-
我是 C++ 新手,所以我只是在尝试,但感谢您的提示。 expected_exepath 采用 std::string *.
-
为什么
expected_exepath takestd::string *`?听起来它应该只返回一个字符串,并且不带任何参数。