方法中的细分故障

问题描述 投票:0回答:1

代码与分割故障的位置 我对C非常陌生(只有其他经验是Java和Python),因此请记住这一点。我正在尝试创建这种辅助方法,该方法将用相同数字打印出相同数字的八十八,十进制表示,并输入一个短阀和char模式。我不明白为什么我会在模式所在的第一个printf语句上收到细分故障,因为概念似乎很好。请发送帮助!

void print_bases (short val, char mode){
    if (val == 0){
        printf("* Base Values:\t       Input Mode: %s *\n", mode);
        printf("*%-3s%-8s:\t%04X%19s*\n", " ", "Hex", 0x0000, " ");
        printf("*%-3s%-8s:\t%06o%17s*\n", " ", "Octal", 000000, " ");
        printf("*%-3s%-8s:\t%d%22s*\n", " ", "Decimal", 0, " ");
    }else{
        printf("* Base Values:\t       Input Mode: %s *\n", mode);
        printf("*%-3s%-8s:\t%04X%19s*\n", " ", "Hex", val, " ");
        printf("*%-3s%-8s:\t%06o%17s*\n", " ", "Octal", val, " ");
        printf("*%-3s%-8s:\t%d%22s*\n", " ", "Decimal", val, " ");
    }
}

我尝试在线查找这个问题,但没有任何效果,我不知道要修复它是什么问题,因为我基于示例比其他任何事物都多。

c segmentation-fault
1个回答
0
投票
类型的正确格式指定词是

char

%c
,而不是
%s
通过使用

%s

,您告诉它您将提供

char *
(指针)类型,并且应该期待C风格的字符串。那不会很好:-)
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.