猪猪侠勇闯互联网 2021-12-19 17:23 采纳率: 33.3%
浏览 6

sizeof使用时除了sizeof(a)/sizeof(a[0])还有在自定义输入数组时不可避免的问题

爷在做作业的时候卡住了
越想越不对劲

    char p[20];
    scanf("%s",&p);
    int lenth=sizeof(p)/sizeof(char);
    //一个问题是如果我定义了数组p的元素数量是20
    //那么sizeof出来的结果直接就是20
    //但是strlen函数就不一样
    cout<<lenth<<endl;
    int changdu=strlen(p);
    cout<<changdu<<endl; 
    //结果很正确 

运行结果及报错内容

自己看吧,可能会有人有同样的问题

img

我服了


  • 写回答

1条回答 默认 最新

  • [PE]经典八炮 2021-12-19 17:25
    关注

    对啊,sizeof计算的长度是p这块内存的长度

    评论

报告相同问题?

问题事件

  • 创建了问题 12月19日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境