转自:http://blog.csdn.net/sunstars2009918/article/details/7094025

查了不少资料,好多都说是:地址错误,即你使用了没有声明的地址。

一 一个经典的例子:

#include<stdio.h>
copyString(char *p1,char *p2) {
  while(*p1!='\0') {
  *p2=*p1;
  p1++;
  p2++;
  }
  *p2='\0';
}
int main() {
  char *a="I am a teacher.";
  char *b="You are a student.";
  printf("初始化后的字符串:\n%s\n%s\n",a,b);
  copyString(a,b);
  printf("复制后的字符串:\n%s\n%s\n",a,b);
}
编译能通过,gcc -o myc myc.c
可是运行时, ./myc ,提示:"段错误!"

解决方法:char *a="I am a teacher."; 改成 char a[]="I am a teacher."; 就可以了

原因:

char *a="I am a teacher.";和char b[]="I am a teacher.";是有区别的
a是指字符串的首地址,即常量‘I’所对应的地址
b首先是一个数组变量,该数组的第一个元素也是’I’
所以在函数copyString中,p2所指向的是常量‘I’所对应的地址,试图改变常量I的值是不允许的。

linux下运行程序后出现段错误的原因和解决案例相关推荐

  1. 2021-01-07关于Linux段错误的原因和解决办法(初学者)

    初学者Linux出现段错误的原因和解决办法 一.使用非法指针(内存地址),包括未经初始化的野指针和内存已经释放的指针.不存在的地址.受系统保护的地址或只读地址.(此类段错误最常见) 解决办法: GDB ...

  2. 如何在虚拟机linux下运行程序吗,如何在Linux上运行Windows应用程序?

    一些人可能避免在Linux上运行Windows应用程序,但事实上有时候这么做大有帮助. 一些人无法摆脱Windows的最主要原因之一是可用的应用程序.有时候,这些应用程序是老式应用程序,没有开源替代版 ...

  3. Linux下C程序的编辑,编译和运行以及调试

                                                                                                        ...

  4. c语言在linux下运行程序设计,如何在Linux下运行C语言程序

    如何在Linux下运行C语言程序 C语言是一个有结构化程序设计.具有变量作用域(variable scope)以及递归功能的过程式语言.以下是小编为大家搜索整理的如何在Linux下运行C语言程序,希望 ...

  5. deepin终端编译c程序_大神支招 如何在Linux下运行C语言程序

    刚入门学习C语言程序的小伙伴比较常遇到的其中一个问题是:如何在Linux下运行C语言程序.今天针对这个热门问题,小编为大家准备了详细的教程! 小编先给大家普及一些关于C语言程序的基本常识:首先大家要清 ...

  6. 在Linux中某些程序无法运行,为何linux下的程序不能在windows下运行,不是“废话”那么简单...

    大家好,近期我发的文章都比较底层,过些天再发Linux基础方面的内容,多谢大伙儿的支持,回到正题. 您看,linux和windows都是运行在x86体系架构cpu上的操作系统,也就是指令的机器码都是一 ...

  7. linux如何编译wine,利用winelib编译一个可在linux下运行的程序

    利用winelib编译一个可在linux下运行的程序 只是想既可以使用linux的api,又可以使用windows的api #include #include #include #include in ...

  8. Linux下的程序调试——GDB

    无论是多么优秀的程序员,都难以保证自己在编写代码时不会出现任何错误,因此调试是软件开发过程中的一个必不可少的 组成部分.当程序完成编译之后,它很可能无法正常运行,或者会彻底崩溃,或者不能实现预期的功能 ...

  9. linux下运行讯飞语音云的测试程序

    from : http://club.voicecloud.cn/forum.php?mod=viewthread&tid=5484 摸索了一段时间,大概明白了如何在linux下运行讯飞语音云 ...

最新文章

  1. delphi 企业微信消息机器人_简单用VBS调用企业微信机器人发定时消息的方法
  2. svn的使用(转载)
  3. python界面翻译-我用40行python代码写一个桌面翻译器,很nice
  4. VGA timing information
  5. 机器学习第八篇:详解逻辑斯蒂回归算法
  6. 老布特木糖醇蛋卷鸡蛋味
  7. 机器学习降维算法四:Laplacian Eigenmaps 拉普拉斯特征映射
  8. page fault in nonpaged area 蓝屏_电脑蓝屏解决四个小技巧
  9. Andropid 系统(273)--如何修改google libphonenumber的meta data (号码归属地,紧急号码列表,号码格式,号码范围)
  10. 三星电子与索尼在CMOS图像传感器市场份额差距缩小
  11. openlayers添加按钮_OpenLayers3加载常用控件使用方法详解
  12. Key/Value之王Memcached初探:一、掀起Memcached的盖头来
  13. Linux 五种I/O模型
  14. JAVA从url中分离ip和port
  15. 《数据库系统原理》课程设计:超市订单管理系统
  16. SQL语句:查询语句及多表查询典型例子
  17. 赫/哈/霍 夫曼(Huffman)编码 游程编码
  18. 台式计算机连接投影仪无信号,acer投影仪显示无信号?电脑开机显示器无信号?投影仪无信号输入的解决办法是什么?...
  19. 短视频软件开发,抖音源码,美颜SDK,提供开放API接口
  20. mysql获取某个最大的值的一行数据_某一字段分组取最大(小)值所在行的数据

热门文章

  1. Skype For Asterisk 的安装及使用
  2. asp.net程序的问题原来是IE造成的,改用firefox就没问题了!
  3. 算法高级(43)-过滤垃圾邮件、短信?-朴素贝叶斯算法
  4. lgb,xgb,gbdt,adb,RF区别与联系
  5. 多多云手机多少钱一月_北京苹果手机维修为大家分享iPadAir2换屏幕多少钱
  6. NYOJ---ASCII码排序
  7. github代码的提交与下载
  8. XML学习笔记(三)
  9. Android Studio中使用Git进行代码管理(分支、合并)
  10. 单行函数(数值函数)