【发布时间】:2011-05-13 00:37:32
【问题描述】:
我的程序如下;
#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 下编译,虽然它没有给我任何错误,但每次我运行它时程序都会崩溃。从我看过的例子来看,代码似乎很好。很高兴知道我是否做错了什么。
谢谢。
【问题讨论】:
-
谢谢大家。应该已经看到了,我刚开始使用 C 并且到目前为止只使用字符串来玩文本程序,所以 %s 只是自动浮现在脑海中。
-
+1 因为我知道我应该一直使用 %zu 而不仅仅是 %u 甚至 %d
-
如果您使用的是 GCC,请使用
-Wall或-Wextra或-Werror来加速您的错误。 GCC 能够检查格式字符串并警告printf-、scanf-、strftime- 和strfmon类函数的参数不正确。