2015-04-03 70 views
-1

我试图通过string来运行。在函数参数中获取字符串的大小

我越来越:

Data:abcdefghijk 
<br>size of Data:4 

我的代码:

#include <iostream> 
#include <conio.h> 
using namespace std; 
void trying (char *Data) 
{ 
cout << "Data:" << Data; 
cout << "\nsize of Data:" << sizeof(Data); 

} 
main() 
{ 
char DaTa[] = "abcdefghijk"; 

trying(DaTa); 
return 0; 
} 
+1

始终将您所使用的语言指定为问题的标记。 – Thomas 2015-04-03 21:01:29

+1

看起来没问题...你的问题是什么? – 2015-04-03 21:43:04

回答

0

,如果你说的虽然其他成员是在未推断你的意图有点钝,这将是有帮助你正在寻求获得传递数组的大小。

安美居....

trying()sizeof(Data)计算一个指针的大小,而不是由调用者传递的阵列的大小。

只给出一个指针,没有办法可以访问数组的大小,因为指针没有携带该信息(它可以指向一个元素或数组中的第一个,并且没有办法告诉)。如果您想要trying()访问数组中的元素数量,则需要单独传递它(例如作为单独的参数)。