2017-03-05 7 views
0

私は、次のコードを得た:strlen(charのポインタ)は何を返していますか?

char sir[1000], *psir; 
cout << "Introduceti sirul de caractere: "; 
strcpy(sir ,"merge") ; 
int dim; 
dim = sizeof(sir); 
cout << "Dimensiunea zonei de memorie asociata variabilei masiv sir:"\ 
    << dim << endl; 
dim = strlen(sir); 
cout << "Lungimea sirului de caractere introdus:" << dim << endl; 

psir = new char[dim + 1]; 
dim = strlen(psir); 

を、私はこのコードを実行すると、私は最後の文で、22を取得し、私はなぜ表示されません。 誰かが説明できますか?

+0

最後の1つが実行されるとき、私はdim = 22を意味します –

答えて

0

新しい文字配列を新規作成します。これは素晴らしい方法です。しかし、その初期化されていないので、その内容について尋ねると、予期しない回答が得られます。

+0

ありがとうございました!私は何が起こったのか本当に混乱しました。 –

+0

私の答えを正確に記してください:] – FuzzyAmi

+1

4分 –

関連する問題