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

C语言在Clion中运行提示exit code 139错误是什么含义?

报错含义解释

exit code 139对应的SIGSEGV是段错误信号,含义是程序尝试访问了未被分配给自身的内存空间、或是访问了无读写权限的内存地址,被操作系统强制终止运行。

代码错误原因

你代码里的printf调用完全不符合语法要求:

  • C标准规定printf的第一个入参必须是const char*类型的格式化字符串
  • 你直接把short类型的s、char类型的ch2作为第一个参数传给printf,编译器会把这两个变量的数值当成内存地址,尝试读取该地址存储的字符串内容
  • 比如你第一次传的s值是'A'对应的ASCII码65,也就是尝试读取地址0x41位置的内存,这个地址属于系统保留区域,用户态程序没有访问权限,直接触发段错误。
正确的写法示例

如果你要打印变量对应的字符值,需要传入对应的格式化占位符:

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

int main(void)
{
    char ch = 'A';
    short s = ch;
    printf("%c", s);

    printf("\n________________________\n");

    short s2 = 67;
    char ch2 = s2;
    printf("%c", ch2);

    return 0;
}

运行后会输出:

A
________________________
C
避坑提示

开启编译警告即可在编译阶段直接发现此类问题,比如使用GCC/Clang编译时添加-Wall参数,编译器会直接提示printf入参类型不匹配的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:21:01