gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 16:35:13 29 4
gpt4 key购买 nike

我的程序如下;

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

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

我在 gcc 下编译,虽然它没有给我任何错误,但每次运行时程序都会崩溃。从我见过的例子来看,代码似乎没问题。很高兴知道我是否做错了什么。

谢谢。

最佳答案

printf() 中使用不正确的格式说明符会调用未定义的行为。正确的格式说明符应该是 %zu(不是 %d),因为 strlen() 的返回类型是 size_t

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

关于c - 为什么在 C 中使用错误的格式说明符会使我的程序在 Windows 7 上崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4231891/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com