分析下述代码:

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

  代码不能通过编译。str1为char *const类型的右值类型,根本不能赋值。若想对数组的第一个元素赋值,需要使用*str=‘a’;对字符数组赋值后,使用库函数strcpy进行拷贝操作,strcpy会从源地址一直往后拷贝,直到遇到‘\0’为止。所以拷贝长度是不定的。如果一直没有遇到‘\0’导致越界访问非法内存,程序就崩了。

代码修改如下:

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

  

最新文章

  1. 快刀斩乱麻之 Katana
  2. LeetCode - 49. Group Anagrams
  3. 常用的DC插头公头的尺寸
  4. Spreadsheet Tracking
  5. Python3 内建模块 datetime/collections/base64/struct
  6. POJ1699Best Sequence(DFS)
  7. 代码演示C#中string和StingBuilder内存中的区别
  8. GoF——组合模式
  9. markdown 自己搞一个浏览工具
  10. 第19章 网络通信----TCP程序设计基础
  11. XCode 8.3 Automatically manage signing 问题
  12. hdu 4717 Tree2cycle(树形DP)
  13. 深入剖析Tomcat类加载机制
  14. bzoj 2998 第k小字串
  15. PHP入门1
  16. github上fork别人的代码之后,如何保持和原作者同步的更新
  17. C#细说多线程(下)
  18. 索引原理-btree索引与hash索引的区别
  19. jmeter beanShell 修改http请求参数
  20. Java NIO.2 使用Files类遍历文件夹

热门文章

  1. 20145319 《网络渗透》DNS欺骗
  2. linux内核分析 第7章读书笔记——《深入理解计算机系统》
  3. Unity3D学习笔记(十一):布料和协程
  4. stm32 pwm 电调 电机
  5. Javascript库的产生和解读
  6. React Native之进度条ProgressViewIOS的使用
  7. cropper图片剪裁 , .toBlob()报错
  8. github+hexo搭建博客
  9. Selenium 定位页面元素 以及总结页面常见的元素 以及总结用户常见的操作
  10. (转)关于C# 中的Attribute 特性