永发信息网

c++ 数组用指针方式传递给函数以后如何获得数组的长度?

答案:5  悬赏:0  手机版
解决时间 2021-11-23 05:48
c++ 数组用指针方式传递给函数以后如何获得数组的长度?
最佳答案
将数组作为一个参数传出去,那么他就会“退化”成一个指针类型,进而失去“数组的属性”。(这里的数组不是new出来的)

这里的“属性”指的是数组可以使用sizeof(Array)/sizeof(Array[0])的方法获得其长度的方法的属性。

要在一个函数中得到一个数组的长度,你应该这个数组作为一个引用传出去,那样,就能用sizeof(Array)/sizeof(Array[0])的方法获得长度了。追问要求了指针传递追答那可真坑爹了啊,要不,你给加一个int型长度作为参数传进去?追问已知。用以下语句:
void strfind(char * s, char *t){
char *p1,*p2;
p1 = s ; //指针指向s的第一个字符
p2 = t + strlen(t)-1; //指针指向t的最后一个字符
}追答搜噶,原来是字符型的数组,字符型的数组可以用int strlen(char *)获得字符串的长度,因为它是通过找到字符串结尾'\0'来确定的。

你咋不早说呢?
全部回答
int a(int * x)
{
int y;
while(!(*x))
x++;
}
int len = sizeof(str)/sizeof(char *);追问~

template
void make2dArray(T** &arr, const uint16_t x, T2& volatileY_array)
{
        
int len = sizeof(volatileY_array)/sizeof(volatileY_array[0]);
try
{
if (x != len) 
{
throw std::bad_alloc();
}
arr = new T*[x];
for (int i = 0; i < x; i++)
{
arr[i] = new T[volatileY_array[i]];
}
}
catch (std::bad_alloc)
{
std::cout << "Error." << std::endl;
}
}
无法获得,必须再传一个长度进去。追问已知。用以下语句:
void strfind(char * s, char *t){
char *p1,*p2;
p1 = s ; //指针指向s的第一个字符
p2 = t + strlen(t)-1; //指针指向t的最后一个字符
}追答没说是字符串。。。
恭喜您解决问题。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
金子一克多少钱?我手头有200克想出71800有人
请问怎么将美国购回的松下GF3相机的英文系统
特拉斯汽车怎么样
漂白水漂衣服漂过头了怎么办?
四川人一般喝的什么类型的白酒?
dota关于大树一般出什么装备
我是c罩杯,属于大还是小?
减肥时,需要少吃多餐,这个少吃多餐,究竟是
刚才有个男生问我 磕么 是什么意思
面对身边的人我不敢说出自己的真心想法,我怕
晚上开夜车 对面车的大灯太刺眼 怎么办
这是什么歌?? 答玲达令达令搭 时间在不停的
历史文化名城之南京有哪些历史遗迹
男命:丙子 癸巳 辛未 庚寅。此命造未来成就
过程装备与控制工程去哪个单位更好
推荐资讯
怎么这车出弯的速度这么快的嘛
索尼zx2怎么和汽车连接
苹果4怎么发不出去短信息
我要练成肌肉男还有希望么?
巴基斯坦人想来中国工作,请问怎么申请签证?
中国邮政储蓄银行(乌木镇支行)地址好找么,我
中诚商贸是不是骗人的
用洋和媛起一个情侣网名
高参酒用钧瓷盛酒,那酒是不是也是值得收藏的
为什么说ME860底包不能随便刷
敬语都有哪些啊
从保定市到蠡县怎么走要详细路线 费用多少?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?