2 xyhqqlove xyhqqlove 于 2016.01.22 21:26 提问

Segmentation fault是什么意思?哪里错了
aaa

int main()
{
int n;
scanf("%d",n);
char zfc[n];
scanf("%s",&zfc[0]);
}

3个回答

qq_27183003
qq_27183003   Ds   Rxr 2016.01.22 21:34
已采纳
 int main()
{
int n;
scanf("%d",&n);//修改
char zfc[n];//有的编译器可以这样用,有的要求数组长度不能是变量。
scanf("%s",&zfc[0]);
}
caozhy
caozhy
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.01.22 21:27

char zfc[n];
不能这么写
你得写
char *zfc = (char *)malloc(n * sizeof(char));

91program
91program   Ds   Rxr 2016.01.22 21:35

C 语言不支持动态的数组。
定义数组,其大小只能是常量。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
c++ Segmentation fault Warning
今天重新拾起c++ primer第五版复习了一下c++,看到第一章有一小处细节是之前没注意到的,特此补充。 “程序员常常在调试时添加打印语句。这类语句应该保证‘一直’刷新流。否则,如果程序崩溃,输出可能还留在缓冲区中,从而导致关于程序崩溃位置的错误推断“。 结合之前,我也经常使用过打印语句来调试代码,当出现段错误有时定位到程序错误位置,有时定位不到。才发现原来输出时是有一个与设备关联的缓冲区(b
Segmentation fault:你是否曾经为这头疼??
Segmentation fault 也是我们常说的段错误,是编写代码过程中很容易遇到的事情。有时候你也许会感叹无法避免这种情况的发生,甚至常常为这位“熟客”感到头疼。 段错误,总结起来无非是两种情况导致:内存越界,访问非法内存。   1、内存越界 内存越界就是指内存输入超出了预分配的空间大小,导致系统异常。 如下面一段代码: 1  #define MAXNUM 1024 2
Segmentation fault到底怎么回事
(备注:我的glibc版本是2.12,GCC版本4.4.6,内核版本2.6.32-279)    Linux上开发时最恼火的就是遇到“Segmetation Fault”错误。为什么这么说,很多人看到这个错误后心里第一反应是程序访问的非法的内存,导致其被操作系统强行终止。这固然没错,可这里有个比较模糊的概念了:什么叫“非法”的内存?    程序运行时,每个进程都有自己的虚拟地址,理论上说进
arpa/inet.h所引起的Segmentation fault及网络编程常见的头文件
最近在学习Linux网络编程方面的知识,感觉还是有些困难。主要是对协议过程的理解,还有socket的API的理解不够深刻。今天复习编写了一个TCP的服务端和客户端的程序实现client.c从命令行参数中获得一个字符串发给服务器,然后接收服务器返回的已处理的字符串并打印。      server.c 1 #include
Segmentation fault 定位
看了酷壳上这个贴 http://coolshell.cn/articles/11377.html #include struct str{     int len;     char s[0]; };   struct foo {     struct str *a; };   int main(int argc, char** argv) {  
centos6.5系统升级glibc时出错导致不管输入什么命令都是 Segmentation fault 解决
因为升级glibc-2.18结果导致系统出现错误不管输入什么命令都是段错误: [root@node04 ~]# ls Segmentation fault [root@node04 ~]# vim Segmentation fault 出现这种情况如果是虚拟机没有重要的东西可以直接重装 解决办法: 挂载光盘,设置从光盘启动(系统开机后按F2进入): 选择完从光
segmentation fault定位与调试
1. 前言: 有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的. 但这不像编译错误一样会提示到文件->行, 而是没有任何信息, 使得我们的调试变得困难起来.     2. gdb: 有一种办法是, 我们用gdb的step,
Mac segmentation fault :11
Mac对数组越界要求非常严格,这个报错一般是非法访问,主要检查数组越界的bug。
你的C/C++程序为什么无法运行?揭秘Segmentation fault (1)
什么让你对C/C++如此恐惧?晦涩的语法?还是优秀IDE的欠缺? 我想那都不是问题,最多的可能是一个类似这样的错误: 段错误(Segmentation fault)这是新手无法避免的错误,也是老手极力回避也经常遇到的错误。 本篇,试图简略地剖析一段会引发这个错误的程序,带来一些启发。先看两份代码,一份是错误的.错误代码#include "string.h" #include <stdlib.h
[转]【已解决】Linux下出现Segmentation Fault(core dump)错误
Linux环境下段错误的产生原因及调试方法小结