segmentation fault
#include<stdlib.h>
void f(char *buff,int len)
{
printf("%s\n",buff);
int i;
for(i=0;i<len;i++)
{ printf("%c\n",*buff);
*buff=*buff-1;
printf("%c\n",*buff);
buff++;
}
}
void main()
{
char *s=(char *)malloc(4);
s="123";
int l;
l=strlen(s);
//f(s,l);
int i;
for(i=0;i<l;i++)
{ printf("%c\n",*s);
*s=*s-1;
printf("%c\n",*s);
s++;
}
printf("%s\n",s);
free(s);
}
上面的函数,编译没有错误,为什么会出现段错误??
相关推荐
Segmentation Fault错误原因总结 _ Sissy 婷婷 Blog1
**什么是“Segmentation fault in Linux”** 在Linux中,内存被划分为不同的段,每个段都有特定的权限。
Segmentation_fault_in_linux.pdf
#### 二、Segmentation Fault的产生机理Segmentation fault在Linux中的产生,主要是由于以下几个方面:1.
HLS进行c simulation没有hls-opencv.h的文件,出现Segmentation fault
对于“Segmentation fault”,则需要通过调试工具(如GDB)定位出错的具体行,分析并修复导致错误的代码片段。
C_C++中的段错误(Segmentation fault)[转] - 温柔的暴力 - 博客园1
【C/C++中的段错误(Segmentation fault)】在计算机编程中,特别是在使用C或C++这类低级语言时,段错误(Segmentation fault)是一个常见的运行时错误,它发生在程序试图访问其不应该访问的内存区域时
Python解决Segmentation Fault错误
在Python编程中,有时候你可能会遇到"Segmentation Fault"(分段错误)的错误。本文将向你介绍一些常见的原因和解决方法,帮助你解决Python中的Segmentation Fault错误。当你使用数组或者其他缓冲区来存储数据时,如果写入的数据超过了缓冲区的边界,就可能导致缓冲区溢出。当你的程序陷入无限递归时,栈空间可能会耗尽,从而导致Segmentation Fault错误。由于缓冲区的长度只有5,而我们却访问了超出范围的索引,这就导致了Segmentation Fault错误。



