2016-06-12 3 views
0

私は基本を理解するためにC++の基本を見直しています。なぜ私は入力文字列よりも短いと定義されている文字配列に長い文字列を入力すると、私のC++プログラムが完全な文字列を出力するのだろうかと思います。 Iプログラムへの入力「ABCDE」、私は文字列全体を出力より長い文字列をcin関数で短い文字配列に置き換える

#include <iostream> 

int main() 
{ 
    using namespace std; 
    const int Size = 2; 
    char carr[Size]; 

    cin >> carr; 
    cout << carr << endl; 
} 

「ABCDE」もかかわらず、文字配列カーの長さは、この作業を行う方法のみ2.

のですか?

+3

これは、うまくいきました。 – MikeCAT

答えて

0

「短い」char[]に「長い」文字列を入力すると、割り当てられていないメモリに書き込むことになります。これはC [++]で未定義の動作をしており、特定の状況では動作する可能性がありますが、セグメンテーション違反でクラッシュすることもあります。

関連する問題