2016-12-05 60 views
0

我知道初始化字符數組的正確方法如下:如何正確聲明和初始化Char數組?

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

但是你可以請幫助我瞭解什麼是當我們聲明一個字符數組作爲字符指針走一段路,然後初始化使用cin.getline這樣的:

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

我知道,第二種方式是不好的,因爲我的代碼是瘋狂。

+3

不會'std :: string句子; std :: getline(std :: cin,句子);'更好? –

+1

指針是**不是**數組! – Olaf

回答

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

你不能這樣做,因爲你的指針sentence沒有初始化,因此不能用作輸入。使用沒有初始化的指針會導致未定義的行爲。

堅持你的第一種方法(使用數組)。否則,您需要new爲您的指針動態分配 - 然後在使用後必須記住delete

+1

@ vu1p3n0x它最初是用C/C++標記的 – artm