作者tittanlee (tittanlee)
看板C_and_CPP
标题[问题] 请问一个字串阵列的问题。有办法算出维度吗?
时间Wed Mar 25 19:17:19 2009
int main()
{
string cmd[] = {"test" , "vi", "let" , "ls"};
printArr(cmd , 4);
有一个问题是用肉眼可以看出他的维度是4,有办法写出什麽function可以回传此阵列的数量吗?
}
void printArr(string *cmd , int num)
{
for (int i = 0 ; i < num ; i++)
cout << cmd[i] << endl;
}
我只有想到一个方法是用sizeof(cmd),然後在除以4,因为一个指标是4byte,这样就可以算出有几个指标了。
但是假如,我没有传阵列的数量,在printArr这个函数里面,有办法得知此阵列的大小吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.5.224.98
1F:→ chrisdar:有 Vector 不用?? 03/25 19:55
2F:推 chrisdar: string cmd[] = {"0" , "1", "2" , "3"}; 03/25 19:59
3F:→ chrisdar: cout << sizeof(cmd) << endl; // 128 03/25 19:59
4F:→ chrisdar: cout << sizeof(cmd[0]) << endl; // 32 03/25 19:59
5F:→ chrisdar: cout << sizeof(void*) << endl; // 4 03/25 19:59
6F:→ chrisdar:你猜错了 cmd并不是指point set而是value set 03/25 20:00
7F:推 softwind:将array传入一个func 等同於 传入第一个元素的address 03/25 21:51
8F:→ MOONRAKER:无法得知的,sizeof()是编译期的macro,他无法在执行期 03/25 22:21
9F:→ MOONRAKER:用来得知资料形态的大小… 03/25 22:21