2017-03-05 53 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分钟即可到达 –