正在努力学习的小白袁 2022-03-04 20:16 采纳率: 90%
浏览 34
已结题

C语言,我想算出一个数有多少位数,以这位数创建新的数组报错

img


我想算出一个数有多少位数,以这位数创建新的数组却发现报错了,错误说num2的值不可用做常量,但是我已经把num2的只算出来了,为什么还报错呢?

  • 写回答

3条回答 默认 最新

  • 谛凌 2022-03-04 20:31
    关注

    因为有些标准的C语言在编译之前分配内存时,需要你已经确定好了所有变量的大小
    比如你这个,编译的时候还没有进行输入,所以不知道num2多大, 所以没法给arr分配内存,所以报错

    • 如果是平时练习,可以直接把arr定义得大一点
    • 但是如果你只想给它分配那么大,就需要使用malloc动态分配内存的办法
      参考:
    #include <stdlib.h>   //别忘了头文件
    int *arr=(int *)malloc(sizeof(int)*num2);
    

    img

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

报告相同问题?

问题事件

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