加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

为什么在Windows 7中使用错误的格式说明符崩溃我的程序?

发布时间:2020-12-13 20:10:30 所属栏目:Windows 来源:网络整理
导读:我的方案如下: #include stdio.h#include string.hint main(){ char string[] = "Gentlemen start your engines!"; printf("That string is %s characters long.rn",strlen(string)); return 0;} 我正在gcc下进行编译,虽然它没有给我任何错误,但每次运行
我的方案如下:
#include <stdio.h>
#include <string.h>

int main()
{
        char string[] = "Gentlemen start your engines!";
        printf("That string is %s characters long.rn",strlen(string));
        return 0;
}

我正在gcc下进行编译,虽然它没有给我任何错误,但每次运行程序都会崩溃.该代码似乎是从我看到的例子是好的.知道我做错什么都很好

谢谢.

在printf()中使用不正确的格式说明符调用Undefined Behavior.正确的格式说明符应该是%zu(不是%d),因为strlen()的返回类型是size_t

注意:%zu中的长度修饰符z表示与size_t相同长度的整数

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读