int main()
{
char* NamePointer = new char;
std::cout << "Enter the file you want to edit (MUST BE IN THE PROJECT'S DIRECTORY): ";
std::cin >> &NamePointer;
const char* FileName = NamePointer;
delete &NamePointer;
return 0;
}
这会返回标题中的错误:
std::cin >> &NamePointer;
有什么想法吗?这可能是我想念的简单事情,但当我查看它时,我没有得到答案。
只是固定它,为了加入而烦恼!我拿出了“&amp;”在“&amp; NamePointer”中。 击>
是的,我刚刚发现了另一种使用c_str()的方法。遗憾!
答案 0 :(得分:3)
你应该:
std::cin >> NamePointer;
另外,你只是分配一个字符的内存,可能你的意思是:
char* NamePointer = new char[MAX_SIZE];
并将其解除为:
delete []NamePointer;
请注意,C ++这样做的方法是简单地使用std::string
来处理使用char*
时遇到的缓冲区溢出问题:
std::string Name;
std::cin >> Name;
答案 1 :(得分:0)
此处不需要地址运算符。简单地:
std::cin >> NamePointer;
我注意到的其他一些事情:
char* NamePointer = new char;
你可能想要比一个角色更多的空间。一个简单的开始可能是一个大的静态分配:
char NamePointer[1024];
在这种情况下,您最后省略了delete
语句(顺便说一下,也没有使用地址运算符)。