You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言未初始化数组存随机值,无法输入自定义数据求助

C语言数组随机值问题解决

问题根源

你定义的RentSmall等数组如果是函数内的局部变量,C语言不会自动初始化栈上的局部数组,这些数组会保留内存中的随机垃圾值——这是语言的默认行为,和变量名无关。

解决方法

  1. 初始化数组
    如果需要先将数组置为0,定义时可以直接初始化:

    int RentSmall[30] = {0}; // 第一个元素设为0,其余未指定元素自动补0
    int RentMedium[20] = {0};
    int RentLarge[25] = {0};
    

    要是需要自定义初始值,也可以通过循环逐个赋值。

  2. 确保输入逻辑正确执行
    你提到要输入自定义数据,但未提供输入代码。如果输入逻辑有问题(比如代码没执行到输入环节、scanf参数错误),数组会保留随机值。以下是正确的输入示例:

    // 输入30个小码鞋的租赁数据
    printf("请输入30个小码鞋的租赁状态:\n");
    for(int i = 0; i < 30; ++i) {
        // 注意传地址&RentSmall[i],不能漏写&
        scanf("%d", &RentSmall[i]);
    }
    
  3. 检查数组作用域
    如果数组是局部变量,不要在定义它的函数外部直接访问,否则会访问无效内存,出现随机值。跨函数访问数组需要通过参数传递。

内容的提问来源于stack exchange,提问作者lid5050

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 15:43:16