码迷,mamicode.com
首页 > 其他好文 > 详细

2.strcpy使用注意(2)

时间:2017-06-26 12:53:00      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:库函数   log   数组   logs   highlight   string   字符   strcpy   没有   

分析下述代码:

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);
}

  

2.strcpy使用注意(2)

标签:库函数   log   数组   logs   highlight   string   字符   strcpy   没有   

原文地址:http://www.cnblogs.com/dd2hm/p/7079689.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!