藏猊 2022-03-29 16:52 采纳率: 57.1%
浏览 120
已结题

c不知道整型数组长度的情况下怎么遍历数组

如题,
用函数处理整型数组,但只能传递数组头指针.
然而通过头指针我没办法获取数组长度啊,

sizeof(list) / sizeof(list[0]); //结果永远是1

这样怎么才能遍历数组?

  • 写回答

3条回答 默认 最新

  • 於黾 2022-03-29 16:55
    关注

    如果你传入的是指针而不是数组类型
    你应该多加一个变量,同时传入长度
    否则鬼知道数组到底多长
    而且数组类型是不可变长度的,所以一般定义的时候都会稍大,没有那么正好的,里面大概率并不是所有的元素都存放着数据
    所以不管你传一个数组类型进来还是一个数组指针,其实都应该再传一个int
    告诉函数到底有多少数据需要处理
    -=-=-=
    举个例子
    你要写个函数,找到数组里面的最小值
    正常最小值比方说是5吧
    可是你数组长度是100,其中只有前10个有数据,后面都是0
    那你无脑遍历整个数组,就会认为最小的数据是0
    -=-=-=-
    所以说,遍历数组就是个伪问题,数组就不应该遍历,就必须传入一个数来限制循环次数,而不是从头循环到尾

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月8日
  • 已采纳回答 3月31日
  • 创建了问题 3月29日

悬赏问题

  • ¥15 依据报错在原代吗格式的基础上解决问题
  • ¥15 在虚拟机中安装flash code
  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图
  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
  • ¥25 LT码在高斯信道下的误码率仿真
  • ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧
  • ¥15 电视版的优酷可以设置电影连续播放吗?