c++ Segmentation fault Warning

Posted sysu_zjl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ Segmentation fault Warning相关的知识,希望对你有一定的参考价值。

今天重新拾起c++ primer第五版复习了一下c++,看到第一章有一小处细节是之前没注意到的,特此补充。
程序员常常在调试时添加打印语句。这类语句应该保证‘一直’刷新流。否则,如果程序崩溃,输出可能还留在缓冲区中,从而导致关于程序崩溃位置的错误推断“。
结合之前,我也经常使用过打印语句来调试代码,当出现段错误有时定位到程序错误位置,有时定位不到。才发现原来输出时是有一个与设备关联的缓冲区(buffer),每次输出的字符串遇到特殊值如换行(\\n)等,才会将程序目前为止所产生的所有输出都真正写入输出流中,而不是仅停留在内存中等待写入流。
例子展示如下:

#include <cstdio>
int main()
   char *p=NULL;
   printf("aa");
   printf("%c\\n",*p);
   return 0;

#include <cstdio>
int main()
   char *p=NULL;
   printf("aa\\n");
   printf("%c\\n",*p);
   return 0;

以上是关于c++ Segmentation fault Warning的主要内容,如果未能解决你的问题,请参考以下文章

c++ Segmentation fault Warning

c++ Segmentation fault Warning

C++ tcmalloc::SLL_Next segmentation fault

C++ tcmalloc::SLL_Next segmentation fault

C++ tcmalloc::SLL_Next segmentation fault

C++ Array of Array Products :exited,segmentation fault