三目运算符 段错误问题记录

Posted shiyk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三目运算符 段错误问题记录相关的知识,希望对你有一定的参考价值。

  在最近的一个项目中为了缩短代码量,不使用if……else去做判断,就使用了三目运算符。编译通过,但是在调试功能得时候,老是出现段错误。花费了一个多小时时间才找到问题出在三目运算符。

  问题点:

  server_info_len = SERVER_INFO_LEN_MAX <  strlen(pdata) ? SERVER_INFO_LEN_MAX  : strlen(pdata);

  在三目运算中使用了strlen(pdata),就会出现段错误。

  修改后:

  tmep_len = strlen(pdata);

  server_info_len = SERVER_INFO_LEN_MAX < tmep_len ? SERVER_INFO_LEN_MAX : tmep_len;

  此时编译后运行程序正常。

 

  原因暂时还没有搞清楚,欢迎各位大神评论留言。谢谢

以上是关于三目运算符 段错误问题记录的主要内容,如果未能解决你的问题,请参考以下文章

条件语句和三目运算符的区别

Java三目运算符

关于java 三目运算符

BOOL类型和引用,三目运算符

三目运算符

Java数值类型提升机制(三目条件运算符与空指针问题)