2015-04-03 43 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()訪問數組中的元素數量,則需要單獨傳遞它(例如作爲單獨的參數)。