如何正确声明和初始化Char数组?

时间:2016-12-05 00:20:13

标签: c++ arrays string pointers segmentation-fault

我知道初始化char数组的正确方法如下:

char sentence[256]={0};
cin.getline(sentence,256);

但是,当我们将char数组声明为char上的指针然后使用cin.getline初始化它时,请你帮我理解发生了什么:

char* sentence;
cin.getline(sentence,256);

我知道第二种方式很糟糕,因为我的代码很疯狂。

1 个答案:

答案 0 :(得分:1)

char* sentence;  
cin.getline(sentence,256);  // wrong

您无法执行此操作,因为您的指针sentence未初始化,因此无法用作输入。在没有初始化的情况下使用指针会导致未定义的行为。

坚持你的第一种方法(使用数组)。否则,您需要new为您的指针动态分配 - 然后在使用后必须记住delete