c++ char* 改变长度重新赋值_[C/C++] 2 :分析下列代码有什么问题?

e014d2fa2ce4bccf03a88ef835473852.png

题目

分析下面代码有什么问题?

void test2() 
{ char string[10], str1[10]; int i; for(i=0; i<10; i++) { str1  = 'a'; } 
strcpy( string, str1 ); 
} 

解答

  1. 代码无法通过编译。因为数组名str1为 char *const类型的右值类型,根本不能赋值。
  2. 即使想对数组的第一个元素赋值,也要使用 *str1 = 'a';
  3. 对字符数组赋值后,使用库函数strcpy进行拷贝操作,strcpy会从源地址一直往后拷贝,直到遇到'0'为止。所以拷贝的长度是不定的。如果一直没有遇到'0'导致越界访问非法内存,程序就崩了。
  4. 修改方案
void test2()
{char string[10], str1[10];int i;for(i=0; i<9; i++){str1[i]  = 'a';}str1[9] = '0';strcpy( string, str1 );
}

相关知识点

  1. C 字符串
  2. C 库函数 - strcpy()
  3. C 标准库 - <string.h>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529274.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hal 双串口同时接收丢失数据_【STM32Cube_06】使用USART发送和接收数据(查询模式)...

寻求更简洁舒适的阅读体验&#xff0c;请移步Mculover666的个人博客&#xff1a;【STM32Cube_06】使用USART发送和接收数据&#xff08;查询模式&#xff09;​www.mculover666.cn本篇文章主要介绍如何使用STM32CubeMX初始化STM32L431RCT6的USART&#xff0c;并使用查询模式发送…

什么叫冷备用状态_新密5P加工中心冷油机生产厂家电话【瀚信德】

新密5P加工中心冷油机生产厂家电话【瀚信德】以上如有异常&#xff0c;请尽快通知分司派维修人员处理。油冷机的工作原理有什么油冷机也叫冷油机&#xff0c;根据制冷系统原理&#xff0c;低温低压的液态冷媒在蒸发器里面与周围水进行热交换蒸发器吸收油的热量&#xff0c;蒸发…

多线程 循环 锁_大多数人还不清楚的iOS多线程

你不知道的的 iOS 多线程程序员用有限的生命去追求无限的知识。有言在先首先我不是故意要做标题党的&#xff0c;也不是我要炒冷饭&#xff0c;我只是想换个姿势看多线程&#xff0c;本文大部分内容在分析如何造死锁&#xff0c;奈何功力尚浅&#xff0c;然而再浅&#xff0c;也…

学校为什么要单位接收函_学校、小区运动场为什么要选择塑胶跑道

随着人们生活水平的不断提高&#xff0c;科技的日新月异&#xff0c;各行各业都向着更加健康环保安全舒适的方向迈进。就拿小区、学校的运动场所地坪为例&#xff0c;传统的“沙土跑道”已经被运动塑胶跑道所替代。那么运动场为什么会选择塑胶跑道呢&#xff1f; 塑胶跑道又称全…

pitstop插件使用说明_【学员分享】程序员效率神器,最常用VIM插件安装大全

相信大家多次被推荐用vim作为编辑程序&#xff0c;知道vim编辑有很多优点&#xff0c;但是vim初始界面太原始了&#xff0c;安装了之后只能用来编辑&#xff0c;如果要运行就需要退出去运行&#xff0c;麻烦死了。回想用现成的IDE是多么的舒服。但是为了更好的学习&#xff0c;…

JVM思维导图、正则表达式符号图、企业内部开发流程图

JVM思维导图、正则表达式符号图、企业内部开发流程图 1.JVM思维导图&#xff1a; 2.正则表达式符号图&#xff1a; 3.企业内部开发流程图&#xff1a;

萧县机器人_全国总决赛第一名!萧县杨楼的这位学生厉害了

&#xfeff; 提示&#xff1a;点击上方"萧县关注"↑免费订阅本刊点击上方关注我们&#xff0c;免费订阅更多精彩内容&#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;&…

关于JSP页面无法加载css,游览器访问jsp页面样式未生效导致乱序

关于JSP页面无法加载css&#xff0c;游览器访问jsp页面样式未生效导致乱序 1.修改自己过滤器中对编码格式的修改 如图&#xff1a; 代码如下&#xff1a; public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOE…

将视图转为image_JavaScript二进制数组(2)TypedArray视图

ArrayBuffer对象作为内存区域可以存放多种类型的数据。同一段内存&#xff0c;不同数据有不同的解读方式&#xff0c;这种解读方式称为“视图&#xff08;view&#xff09;”。ArrayBuffer有两种类型的视图&#xff0c;一种是类型化数组视图&#xff08;TypedArray&#xff09;…

解决IDEA中maven工程的jsp、jstl依赖导入了 ,但是 jsp页面的uri却不提示(手动输上也报红)

解决IDEA中maven工程的jsp、jstl依赖导入了 &#xff0c;但是 jsp页面的uri却不提示&#xff08;手动输上也报红&#xff09; 出现原因&#xff1a;idea内有缓存 解决办法&#xff1a;File --> Invalidate Caches / Restart… --> lnvalidate and Restart idea版本&#…

空格 过滤多个_CAD选择过滤器的运算符如何使用?

选择过滤器FILTER在CAD早期版本中是扩展工具的一个功能&#xff0c;到了高版本变成标配的功能&#xff0c;但在浩辰CAD的菜单或工具面板中我还找到选择过滤器的命令。浩辰CAD面板、右键菜单和特性面板倒是都提供了快速选择的功能&#xff0c;快速选择功能应该是借鉴选择过滤器开…

各层作用_终于弄明白了 Singleton,Transient,Scoped 的作用域是如何实现的

一&#xff1a;背景1. 讲故事前几天有位朋友让我有时间分析一下 aspnetcore 中为什么向 ServiceCollection 中注入的 Class 可以做到 Singleton&#xff0c;Transient&#xff0c;Scoped&#xff0c;挺有意思&#xff0c;这篇就来聊一聊这一话题&#xff0c;自从 core 中有了 S…

权限管理系统_在Gitee狂揽11K Star!这个SpringCloud的权限管理系统你必须知道

SpringCloud 大家都很熟悉了&#xff0c;它作为一套完整的微服务解决方案&#xff0c;广受 Java 开发者们的好评&#xff0c; 今天就为大家介绍一款 Gitee 上的王牌项目&#xff0c;基于 SpringCloud 的权限管理系统——Pig。项目名称&#xff1a;Pig项目作者&#xff1a;pig4c…

导出排除的表_excel拆分实例:如何快速制作考勤统计分析表

编按&#xff1a;面对新的统计需求&#xff0c;很多人会一下变懵&#xff0c;不知如何办。如果涉及的统计有一千多行数据&#xff0c;哭的心思都有了&#xff1a;什么时候才能下班哟&#xff01;今天老菜鸟通过考勤统计分析表实例分享自己面对新统计需求的解决方法&#xff1a;…

python 数据字典用法_python数据字典的操作

一、什么是字典&#xff1f;字典是Python语言中唯一的映射类型。映射类型对象里哈希值(键&#xff0c;key)和指向的对象(值&#xff0c;value)是一对多的的关系&#xff0c;通常被认为是可变的哈希表。字典对象是可变的&#xff0c;它是一个容器类型&#xff0c;能存储任意个数…

双系统安装deepin20_win10deepin15.10双系统安装教程

第二步&#xff1a;下载深度启动盘制作工具深度启动盘制作工具地址第三步&#xff1a;制作U盘启动盘打开第二部下载的启动盘制作工具&#xff0c;并准备一个u盘插入待装系统的电脑&#xff0c;选择镜像文件后&#xff0c;下一步选择磁盘并勾选格式化磁盘&#xff0c;点下一步开…

ubuntu19 安装git_在Ubuntu 18.04上安装Git

步骤1.首先&#xff0c;通过运行以下命令确保您的系统和apt包列表完全更新&#xff1a;apt-get update -yapt-get upgrade -y第2步。在Ubuntu 18.04上安装Git。现在让我们安装git&#xff1a;apt install git您可以使用以下命令来检查已安装的git版本&#xff1a;$ git --versi…

mysql数据库开发环境_MacOS下搭载开发环境之数据库篇(Mysql + Navicat)

一、安装Mysql1、官网下载mysql的tar包(提示&#xff1a;建议vpn环境下载)2、解压并安装tar包# 移动解压后的二进制包到安装目录sudo mv mysql-5.7.19-osx10.9-x86_64 /usr/local/mysql# 更改 mysql 安装目录所属用户与用户组cd /usr/localsudo chown -R root:wheel mysql# 初始…

mysql alter 唯一键_MySQL列属性 之 唯一键

MySQL列属性 之 唯一键唯一键唯一键&#xff1a;每张表往往有多个字段需要具有唯一性&#xff0c;数据不能重复&#xff0c;但是在每张表中&#xff0c;只能有一个主键&#xff0c;因此 唯一键就是用来解决表中多个字段需要具有唯一性的问题。例如身份证号码应该每一行的记录不…

wpf 使用位图画图为什么断断续续_WPF的未来是微软WinUi!

WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架&#xff0c;属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架&#xff0c;真正做到了分离界面设计人员与开发人员的工作&#xff1b;同时它提供了全新的多媒体交互用户图形界…