C语言执行此代码为什么会段错误

求详细解释

只有char *p;但是却未让p指向可使用的空间。
下面的strcpy(p,"hello");是想让它把字符串复制到“NULL”吗?
在此行之前要加一行:
p=(char*)malloc(6);
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言代码出现segmentation fault 的原因是什么?
segmentation fault 即段错误,一般都是出现了非法的地址写法操作导致的。常见的几种情况:1、空指针访问。如果指针为空(NULL), 那么对空指针的读写操作都会导致segmentation fault。2、指针指向非法区域后的写操作。C语言的指针指向了非法区域,然后对其写入,会带来不可预知后果,最严重的就是程序崩溃,...

段错误的原因
这一段主函数代码中的create()函数所返回的值并没有赋给结构变量head,所以之后的函数所访问的结构变量偿不存在的,所以会出现段错误,提示段错误主要是后面调用的free()中的变量并不存在空间地址,所以提示段错误。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 推荐律师服务: 若未解决您的问题,请您详细描述...

C语言中什么是、、段错误、、引起段错误的原因有哪些?
在编程中以下几类做法容易导致段错误,基本上是错误地使用指针引起的。所谓的段错误就是指访问的内存超出了系统所给这个程序的内存空间,段错误应该就是访问了不可访问的内存,这个内存区要么是不存在的,要么是受到系统保护的。段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gd tr...

C语言中什么是、、段错误、、引起段错误的原因有哪些?
在编程中以下几类做法容易导致段错误,基本上是错误地使用指针引起的。所谓的段错误就是指访问的内存超出了系统所给这个程序的内存空间,段错误应该就是访问了不可访问的内存,这个内存区要么是不存在的,要么是受到系统保护的。段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gd tr...

一个C语言 运行后 他说 Segmentation fault (core dumped)) 求鉴定错...
段错误了,没有运行,只看程序的错误有 1.fin = fopen ( " p9.data ", " r " ) ;没有检查fin的有效性,当打开文件失败时,访问fin会造成段错误,去掉引号中的空格,并检查fin是否有效。2.for后面的分号去掉,不然数组越界访问a[n]了,可能造成段错误 for ( i = 0 ; i < n ; i++ )...

运行以下C语言代码,为什么会出现段错误(核心已转储)?
问题主要在于你int *w;后只是定义了一个指针,并没有给w分配空间,而你又给*w赋值,导致内存错误了 你的fun函数里,w为什么要定义成一个指针呢 直接 int w;就可以了

GCC下调试C语言程序为什么显示“段错误”?
Ubuntu下访问冲突(Access Violation,比如数组下标越界,指针非法访问等)是报告"段错误"。这里大多数人都是用windows,很少会用Ubuntu的,我也是最近才学会在终端里用gcc编程序,并且故意写了个非法访问指针的程序,才知道“段错误”和windows下的访问冲突意思差不多的。楼主,你的程序中确实存在隐患,不过...

C语言的内存分配和段错误的处理
在嵌入式程序设计中,对程序变量内存管理的重要性不言而喻,因为嵌入式设备内存资源有限。内存分配不合理可能导致程序崩溃,即所谓的段错误。本文将深入解析内存分配和段错误处理的策略。C语言程序由三部分组成:代码区、静态存储区和动态存储区。代码区包含机器语言表示的可执行二进制代码。静态存储区在编译和...

C语言在linux下编译通过,一运行就段错误
linux里面段错误就是内存访问的错误了,应该是你代码里的内存分配有问题,因为没看到你这里的struct studen的具体定义,只能让你注意看下studen的name这个字符串的定义,txt文件里的name字段有没有超出这个name的定义长度,如果超出了,fscanf就会报内存错误了 ...

C语言编译之后出现Segmentation fault (core dumped)的错误
这应该是Linux下面按照C99标准编写的代码,不然在C89标准的编译器下是无法通过编译的。Linux下的段错误:Segmentation fault (core dumped)和Windows下的运行时错误道理是一样,一般都是内存被踩访问越界了导致。肯定是代码的某处逻辑有问题,访问了野指针啊之类的。

相似回答