【发布时间】:2011-02-27 21:44:08
【问题描述】:
这个可能很简单,但我似乎无法让它工作。
我有这个非常简单的 sn-p 代码:
#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:In function 'main': test.c:12: warning: format '%s' expects type ' char *',但参数 2 的类型为 'int'
-
很有趣,我没有收到警告信息,如果我收到了,我可能会为每个人节省一些时间,包括我自己 :)
-
您可能需要确保使用
-Wall编译器标志以确保不会错过警告。
标签: c pointers printf segmentation-fault