标签:记录 info 三目运算符 运算 运算符 错误 使用 程序 原因
在最近的一个项目中为了缩短代码量,不使用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;
此时编译后运行程序正常。
原因暂时还没有搞清楚,欢迎各位大神评论留言。谢谢
标签:记录 info 三目运算符 运算 运算符 错误 使用 程序 原因
原文地址:https://www.cnblogs.com/shiyk/p/9275230.html