我知道初始化char数组的正确方法如下:
char sentence[256]={0};
cin.getline(sentence,256);
但是,当我们将char数组声明为char上的指针然后使用cin.getline
初始化它时,请你帮我理解发生了什么:
char* sentence;
cin.getline(sentence,256);
我知道第二种方式很糟糕,因为我的代码很疯狂。
答案 0 :(得分:1)
char* sentence;
cin.getline(sentence,256); // wrong
您无法执行此操作,因为您的指针sentence
未初始化,因此无法用作输入。在没有初始化的情况下使用指针会导致未定义的行为。
坚持你的第一种方法(使用数组)。否则,您需要new
为您的指针动态分配 - 然后在使用后必须记住delete
。