{
//长度不确定
CString cs[] = {"A","B","C","D","E","F","G","H","I"};
}
void Fun(CString cs[])
{
//如何在这里得到CS的长度?
int i = sizeof(cs);
//这里i总是等于4
//请问除了从参数里传递长度给这个函数知道,还有其他的办法吗?
}
//长度不确定
CString cs[] = {"A","B","C","D","E","F","G","H","I"};
}
void Fun(CString cs[])
{
//如何在这里得到CS的长度?
int i = sizeof(cs);
//这里i总是等于4
//请问除了从参数里传递长度给这个函数知道,还有其他的办法吗?
}
//长度不确定
CString cs[] = {"A","B","C","D","E","F","G","H","I"};
Fun(cs);
}
少写了句,不好意思!
{
int i = sizeof(cs); //因为参数是数组,所以cs是个地址,也就是指针,所以sizeof(cs)总是4
//请问除了从参数里传递长度给这个函数知道,还有其他的办法吗?
//一般用数组作参数的,都要把数组长度也作为参数传进来的
}
int i = sizeof(cs)/sizeof(cs[0]);
可以得到数组的个数。
但是调用函数来求就肯定不行,因为函数中得到的是一个指针,sizeof不能计算指针所指向的内存区域大小,sizeof(指针)一定为4,4字节是指针变量的大小。
//一般用数组作参数的,都要把数组长度也作为参数传进来的
--------------------------------------------------------------------
好像没有,new的好像可以直接查地址前面一个字节,建议你传长度