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

C语言代码运行持续出现null值问题求助

C代码问题排查结果

错误原因

  • scanf格式符错误:当前使用的"[^\n]*c"缺失前置占位符标识%,无法匹配输入内容;同时数组名jojo本身就是首地址,不需要额外加取地址符&。该问题导致输入内容没有被正确写入jojo数组,数组内为初始垃圾值。
  • printf参数缺失:%s占位符需要传入对应的字符串地址作为参数,原代码仅写了格式字符串,没有传入jojo,导致printf读取到无效内存地址,输出空值。

修正后代码

#include<stdio.h>
#include<string.h>

int main () {       
    char jojo[100];
    
    printf("name: ");
    // 加%99限制读取长度,避免缓冲区溢出风险
    scanf("%99[^\n]", jojo);
    // 补充jojo作为%s占位符的对应参数
    printf("Happy Birthday to %s.\n", jojo);
    
    printf("\n");       
    return 0;       
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:48:03