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