为了账号安全,请及时绑定邮箱和手机立即绑定

确定数组的大小(如果传递给函数)

确定数组的大小(如果传递给函数)

C++
暮色呼如 2019-12-15 12:12:16
如果将数组传递给另一个函数(不传递大小),是否可以确定数组的大小?该数组的初始化类似于int array [] = {XXX} ..我知道不可能执行sizeof,因为它会返回指针的大小。我问的原因是因为我需要在传递数组的其他函数中运行for循环。我尝试了类似的东西:for( int i = 0; array[i] != NULL; i++) {........}但我注意到,在数组的近端,array [i]有时包含诸如758433之类的垃圾值,该值不是数组初始化中指定的值。
查看完整描述

3 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

您可以在int数组中添加一个终止符,然后手动遍历该数组以发现方法中的大小。


#include<iostream>

using namespace std;


int howBigIsBareArray(int arr[]){

    int counter = 0;

    while (arr[counter] != NULL){

        counter++;

    }

    return counter;

}

int main(){

    int a1[6] = {1,2,3,4,5,'\0'};

    cout << "SizeOfMyArray: " << howBigIsBareArray(a1);

}

该程序打印:


SizeOfMyArray: 5

这是O(n)时间复杂度运算,很糟糕。您永远不应单步探索数组以发现其大小。



查看完整回答
反对 回复 2019-12-16
  • 3 回答
  • 0 关注
  • 328 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信