如何正确声明和初始化Char数组?
问题描述:
我知道初始化字符数组的正确方法如下:如何正确声明和初始化Char数组?
char sentence[256]={0};
cin.getline(sentence,256);
但是你可以请帮助我了解什么是当我们声明一个字符数组作为字符指针走一段路,然后初始化使用cin.getline
这样的:
char* sentence;
cin.getline(sentence,256);
我知道,第二种方式是不好的,因为我的代码是疯狂。
答
char* sentence;
cin.getline(sentence,256); // wrong
你不能这样做,因为你的指针sentence
没有初始化,因此不能用作输入。使用没有初始化的指针会导致未定义的行为。
坚持你的第一种方法(使用数组)。否则,您需要new
为您的指针动态分配 - 然后在使用后必须记住delete
。
+1
@ vu1p3n0x它最初是用C/C++标记的 – artm
不会'std :: string句子; std :: getline(std :: cin,句子);'更好? –
指针是**不是**数组! – Olaf