声明一个字符指针

Declaring a char pointer

我正在尝试制作一个 login/register 项目,但我很难从这段代码中声明 char* tempUsername(SIGSEVG 分段错误)

char *tempUsername, *tempPassword, *tempPasswordConfirm, *tempSecurityQuestion;

/*
no other declaration for tempUsername here
*/

std::cout<<"Enter your new username:\n";
std::cin>>tempUsername;

//process stops here

        if(fileSearch(newFilename(tempUsername))) {
            std::cout<<"Username already exists! Choose another username!\n";
        }
        else {
            std::cout<<"Enter your password:\n";
            std::cin>>tempPassword;
            std::cout<<"Confirm your password:\n";

我很难理解指针的任何内容,所以任何建议都非常有用!

char *tempUsername
std::cin>>tempUsername;

这里的问题是您的指针未初始化。当您尝试从输入流中提取到未初始化的指针时,程序的行为将是未定义的。不要这样做。

您的目标似乎是读取一串用户输入。我可以推荐的解决方案是使用 std::string class:

std::string tempUsername;
std::cin >> tempUsername;

无需使用指针来实现。

I can use a char* as an array of chars, is that true?

一般情况下是不正确的。如果你有一个 char* 指向数组 char 的一个元素,那么你可以使用那个 char* 作为迭代器来访问数组的元素。