char* s="AAA";

printf("%s",s);

s[0]='B';

printf("%s",s);

有什么错?

"AAA"是字符串常量。s是指针,指向这个字符串常量,所以声明s的时候就有问题。

cosnt char* s="AAA";

然后又因为是常量,所以对是s[0]的赋值操作是不合法的。

#include<stdio.h>

int main(void)

{

char *ptr = "Linux";

*ptr = 'T';

printf("\n [%s] \n", ptr);

return 0;

}解析:有错误,指针ptr指向常量区空间,内存数据不允许修改*ptr=’T’错误

#include <stdio.h>

void func(char a[10])

{

char c = a[3];

}

int main()

{

char b[10] = "abcdefg";

func(b[10]);

return 0;

}

解析: 这里至少有两上严重错误,

第一,b[10]并不存在,在编译的时候,由于没有去实际地址取值,所以没有出 错。但在运行的时,将计算b[10]的实际地址,并且取值。这时候发生越界错误。

第二,func函数会将传入的char类型的数据当作地址处理,同样会发生错误 。

void test1()

{

char string[10];

char* str1 = "0123456789";

strcpy(string, str1);

}

解答:字符串str1有11个字节(包括末尾的结束符'\0'),而string只有10个字节,故而strcpy会导致数组string越界。

void test2()

{

char string[10], str1[10];

int i;

for(i=0; i<10; i++)

{

str1[i]= 'a';

}

strcpy(string, str1);

}

解答:因为str1没有结束符'\0',故而strcpy复制的字符数不确定。

char *GetMemory( void )

{

char p[] = "hello world";

return p;

}

void Test( void )

{

char *str = NULL;

str = GetMemory();

printf(str);

}

解答:GetMemory中,p为局部变量,在函数返回后,该局部变量被回收。故而str仍为NULL;

char *memcpy( char *dest, const char *src,int len )

{

char* pDest = (char*)dest;

char* pSrc = (char*)src;

int pos;

for(pos=0;pos<len;pos++)

{

pDest[pos] = pSrc[pos];

}

return (char*)pDest;

}

解析:错误1:未对传入指针进行判断assert(dest !=NULL || src != NULL);

错误2:返回栈内指针,函数调用后指针空间释放,易造成内存非法访问

LinuxC编程中常见的段错误(非法操作内存)情形相关推荐

  1. 编程中常见的小错误·

    1.最低级的错误:单词拼写错误 2.要求源文件名称必须跟类名称一致 3.所有的标点符号必须是英文格式下的 4.成对编程 5注意缩进 缩进tab 向前缩进 shift+tab 6.编译: javac H ...

  2. php中常见的错误类型有,JavaScript编程中会出现的错误类型有哪些?错误类型介绍...

    JavaScript编程中会出现的错误类型有哪些?本篇文章就给大家介绍在JavaScript编程中出现的几种常见的错误类型.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助.[相关视频教 ...

  3. socket编程中常见的概念问题!

    socket编程一般指的就是网络编程,常见的服务端和客户机都是必不可少的,今天小千就来给大家介绍一下socket编程中常见的概念问题. 一.常见传输协议 1.tcp协议 TCP (Transmissi ...

  4. 在系统二进制文件中检测到错误_门禁管理系统施工中常见的布线错误

    现在门禁系统已经深入到人们的生活中,门禁系统安装应用越来越广泛.但是门禁系统施工布线都需要注意哪些你了解吗?下面就门禁系统施工布线过程中的几大错误现象给大家提个醒. 一.用网络线布电锁锁到控制器的线! ...

  5. KEIL编程中常见的警告

    @##KEIL编程中常见的警告 1.*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS 这句话直译就是"未调用段,忽 ...

  6. Java开发人员在编程中常见的雷!

    身为一名Java从业人员,其职场生涯就是一边踩"坑",一边上升的过程.这个过程中不仅要学会修改无数bug,也要学会越过很多"坑".今天,千锋老师为大家分享一些J ...

  7. 一些Java开发人员在编程中常见的雷!

    身为一名Java从业人员,其职场生涯就是一边踩"坑",一边上升的过程.这个过程中不仅要学会修改无数bug,也要学会越过很多"坑".今天,小千为大家分享一些Jav ...

  8. [柒穆雨]LOGO 设计中常见的设计错误与设计方式

    LOGO 设计中常见的设计错误与设计的方式,LOGO 设计一直都是设计圈中的热门话题,也是设计师的老大难问题.面对来自各方的压力,想要设计一个完美的 LOGO 并不是一件轻松的工作.这篇文章分析下LO ...

  9. 盘点一个网络爬虫中常见的一个错误

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 圣朝无阙事,自觉谏书稀. 大家好, ...

最新文章

  1. linux下通过yum安装svn及配置
  2. python-常见数据类型及其方法
  3. html旋转代码_用CSS实现一个抽奖转盘(附详细代码+思路)
  4. BlockChain:互联网与区块链之间的那些事(P2P下载、P-CDN、分布式计算、社交媒体、P2P借贷、众筹、区块链、自组织)
  5. [Tips]Torch功能点记录
  6. boost::regex
  7. 剖析如何自己写框架Struts和Mybatis,学其原理而非重复造轮子
  8. libevent源码深度剖析六
  9. html script 设置编码,HTML Script text用法及代码示例
  10. VB实现可执行文件运行时自删除
  11. 大数据行业发展迅速的原因
  12. 暂停按钮_洗衣机在运转时可以按暂停吗
  13. html下播放.wav,wav格式文件用什么播放
  14. Java 文件传输 (TCP、UDP)
  15. build lavas 失败_vue lavas的项目在IE下显示空白
  16. 模糊控制matlab论文,基于MATLAB的锅炉水位模糊控制系统研究( 开题报告+文献综述+论文+外文翻译 )...
  17. 接口测试[PostMan]
  18. 成立126年的通用电气GE投资区块链网络安全初创公司
  19. wps office word 插入图片显示异常 只显示一个长条
  20. 无线通信——调制与编码

热门文章

  1. 触摸屏中应用的电容式触摸芯片
  2. 利用爬虫获取免费IP代理
  3. JavaScript (一) js的介绍及基本语法变量
  4. 2020010909
  5. 微信支付 APP端 后端 第四-五弹 退款定时任务 账单下载
  6. 【Unityc#专题篇】—基础章题单实践
  7. xmind打不开java_XMind 无法打开/保存文件
  8. 如何友好提示vue3.0不再支持IE11及以下的浏览器版本
  9. 唯美烟花特效登录页面,我感觉自己又行了
  10. 【DBC专题】-4-DBC文件中的Signal信号字节顺序Motorola和Intel介绍