segmentation fault原因
发布于 2007-10-31 19:18 阅读:37240 评论:0 标签: fault segmentation 方法

  PHP总是和linux/unix、C/C++分不开的,郁闷。继续C/C++的学习吧。

  今天起,要向学习PHP和MySQL一样,把遇见的问题都记录下来,以提醒自己。

  “segmentation fault”是今天遇见的错误。查找资料,说是一些细节错误:
    1。 针没有赋值;
    2。 量赋值类型有错误。
    3。 最主要的错误就是声明了指针,但是没有初始化 ,结果再后来的时候进行间接引用 ,就出现问题了。

  同一个错误的提示总是有多个造成错误的情况的可能。printf输出时,类型有错误便会有这个问题。

       比如:

以下是代码片段:
char *val;
val = (char *)malloc(valsize + 1);
memset(val, 69, valsize);
val[valsize] = '\0';
printf("After memset : %s \n", *val);

  这时便会提示“segmentation fault”了。原因呢,就是多写了一“*”。改成下面的即可。

以下是代码片段:
printf("After memset : %s \n", val);

      参考的资料请看: 程序运行总是提示 segmentation fault (core dumped)是什么错啊?

  一篇更好的文章: 可恶的"Segmentation faults"之初级总结篇