首先解释一下这个错误的意思
segmentation fault: 分段错误;(机器翻译,我也不知道准确的翻译)
在学习C语言指针的的时候,这个错误绝对碰到不止一次,后来发现,其实大多数情况都是因为指针变量没有初始化,就进行使用的时候就会出现这个玩意儿,当然这个,只有在debug情况下会出现,如图1,运行程序,则会出现图2的情况。
图1
图2
int main(){
char *name;
printf("%c",*name);
}
上面只是一个很简单的例子,想说明的就是定义指针变量时候,一定要记得初始化,编译时,不会出错,但是运行就不行,这在实际开发的时候是致命的错误。因为没有初始化的指针指向的内存区域是无法预料的。
顺便提一下
在用malloc( )分配内存区域的时候,用完了(不需要了,无指针指向该区域了),记得要使用free( )进行释放。