segmentation fault 就是经常说的内存泄露/溢出: 当一个进程执行一个无效的内存引用,或发生断错误时,会触发 SIGSEGV信号,内核默认的动作就是 终止该进程。
我今天就遇到了该问题
我在写一个char *readBuf = NULL;后直接调用*readBuf = a;然后就报了segmentation fault 的错误,通过看别人的博客后,发现是因为我的这个指针还是野指针,所以直接赋值的话会直接内存溢出/泄露。
解决方法:
我们可以在定义完readBuf后,给指针开辟一个空间,用malloc开辟。
readBuf = (char*)malloc(size*8);
size为我需要空间能存放多少字节。