这一个可能很简单,但我似乎无法得到它的工作。C:使用printf时出现分割错误
我有这个非常简单的代码片段:
#include <stdio.h>
#include <string.h>
int main(void)
{
char buf[100];
char *p = buf;
strcpy(p, "Test string");
printf("%s\n", *p);
}
当我运行它导致分段错误。 GDB输出:
Program received signal SIGSEGV, Segmentation fault.
0xb76af3b3 in strlen() from /lib/i686/cmov/libc.so.6
但我仍然不明白。
评论将不胜感激,谢谢。
你可能已经看了GCC警告,以获得问题的一个想法: test.c的:在函数“主”: 测试。c:12:警告:格式'%s'需要键入'char *',但参数2的类型为'int' – 2010-06-04 17:23:47
足够滑稽我没有得到那个警告信息,如果我这样做了,我可能会挽救所有人,包括我自己:) – Hamza 2010-06-04 17:32:42
您可能想要确保使用'-Wall'编译器标志来确保不会错过警告。 – VeeArr 2010-06-04 18:53:07