2017-03-05 50 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

我的意思是dim = 22,當最後一個運行時 –

回答

0

您正在用New創建一個新的char數組,這非常棒。但它沒有初始化,所以詢問其內容會產生意想不到的答案。

+0

感謝隊友!我真的很困惑發生了什麼事。 –

+0

當然。隨時標記我的答案是正確的:] – FuzzyAmi

+1

4分鐘即可到達 –