c++ char* 改变长度重新赋值_[C/C++] 2 :分析下列代码有什么问题?
![](/assets/blank.gif)
题目
分析下面代码有什么问题?
void test2()
{ char string[10], str1[10]; int i; for(i=0; i<10; i++) { str1 = 'a'; }
strcpy( string, str1 );
}
解答
- 代码无法通过编译。因为数组名str1为 char *const类型的右值类型,根本不能赋值。
- 即使想对数组的第一个元素赋值,也要使用 *str1 = 'a';
- 对字符数组赋值后,使用库函数strcpy进行拷贝操作,strcpy会从源地址一直往后拷贝,直到遇到'0'为止。所以拷贝的长度是不定的。如果一直没有遇到'0'导致越界访问非法内存,程序就崩了。
- 修改方案
void test2()
{char string[10], str1[10];int i;for(i=0; i<9; i++){str1[i] = 'a';}str1[9] = '0';strcpy( string, str1 );
}
相关知识点
- C 字符串
- C 库函数 - strcpy()
- C 标准库 - <string.h>
c++ char* 改变长度重新赋值_[C/C++] 2 :分析下列代码有什么问题?相关推荐
- Java不同长度数组赋值_定义一个数组时可以先不赋初值,但一定要确定数组的长度...
[多选题]识别层理主要是根据( )这几个方面来识别. [多选题]层理是通过岩石的( )在岩层垂直断面上的突变和渐变所显示出来的一种成层构造. [单选题]在使用JDBC API的PreparedStat ...
- 怎样改变java编码风格_如何说服同事修改些代码的风格(JAVA的)。。求指引
代码如下: //同事的... public interface IXXXSV{ public int getXXXByList(Map map,ArrayList ColumnList,ArrayLi ...
- byte初始化并赋值_一位数组的定义、赋值和初始化.note
当数组中每个元素都只带有一个下标时,这种数组就是"一维数组".一维数组(one-dimensional array)实质上是一组相同类型数据的线性集合,是数组中最简单的一种数组. ...
- 微信小程序——数组操作 (增加删除修改遍历)map、filter、forEach、find的用法、二维数组,排序,求和、指定长度数组赋值
一.数组的操作 Array.push() ->在数组后面继续插入内容 Array.pop() ->拿走数组最后一个内容 Array-shift()->拿走数组的第一个内容 (unsh ...
- c++ 结构体赋值_《零基础看得懂的C语言入门教程》—(十二)结构体是这么回事
一.学习目标 了解C语言的结构体的使用方法 了解C语言结构体的结构的赋值 了解多种C语言结构体变量的赋值方法和取值方法 目录 <零基础看得懂的C语言入门教程>--(二)简单带你了解流程 & ...
- 定义一个 圆形 Circle类 , 定义其中的长度length属性,定义一个求面积getArea()的方法。 并编写一个测试类,进行长度的赋值和展示,并调用求面积方法展示面积值。
定义一个 圆形 Circle类 , 定义其中的长度length属性,定义一个求面积getArea()的方法. 并编写一个测试类,进行长度的赋值和展示,并调用求面积方法展示面积值. public cla ...
- 面试题 数组长度可否赋值
public class ArrayLength {public static void main(String[] args) {String a[] = new String[10];a.leng ...
- 对象属性结构赋值_(六)面向对象-下
(六)面向对象-下 关键字:static static 可以用来修饰的结构:主要用来修饰类的内部结构 属性.方法.代码块.内部类 static修饰属性:静态变量(类变量 属性,是否使用static修饰 ...
- vba单元格批量赋值_「经验」快速学习VBA
▌序 在知乎上有很多朋友问VBA如何入门?看着代码密密麻麻看不进去. 我想说,我刚开始看也是看着代码也是挠头,但是没办法,要解决批量处理excel的相关问题VBA再好不过.一定要坚持. 我理解的入门, ...
最新文章
- 哪个版本python适用于windows-何种版本的Python适合您
- sap 客户信贷配置与管理解析
- 0x00000000指令引用的内存不能为written_「深入Java虚拟机」Java内存区域与内存溢出...
- Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
- dot-- 资源汇总
- btoa java_javascript atob()函数和 btoa()函数-Base64的编码与解码-Go语言中文社区
- 腾讯云自曝自家技术只值1分钱,这技术以后谁还敢用
- Batch Normalization的意义
- PSD模版如何变成网页模版 (转载)
- 基于Delphi7的木马程序的查杀设计与实现
- 2020年美赛C题(数据分析题)O奖论文笔记 (2)
- Boost.Asio 网络编程([译]Boost.Asio基本原理)
- Jetty启动项目失败?两个命令解决address already in use问题
- 关于travis scott的网名_2020微信情侣名字情侣专用 霸气秀恩爱的情侣网名
- 微信网页版扫码登录是如何实现的?
- 消防管道标志色号_消防标志的起步问题
- Ceph分布式存储系统优化分析
- 28岁转行web前端,参加成都前端web培训可行吗?
- 计算机四级网络工程师考点总结
- 从现在看未来,在未来看现在
热门文章
- 果断拿下4000万美元D轮融资,Rancher发力中国本土化与国产化!
- linux如何设置mac快捷键,在Ubuntu上使用macOS的快捷键
- java读取空格_java 读取文件路径空格和中文的处理
- android 高度上分权重,Android LinearLayout weight权重使用
- vue+vant 移动端H5 商城项目_03
- 秒杀场景_Sentinel在秒杀场景的应用_05
- (企业案例)使用Nacos持久化规则,改造sentinel-dashboard
- ETL异构数据源Datax_Oracle同步MySQL(全量)_04
- Flowable 数据库表结构 ACT_HI_IDENTITYLINK
- (需求实战_03)_shell脚本 sftp协议下载文件