2.strcpy使用注意

Posted 王小东大将军

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.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使用注意的主要内容,如果未能解决你的问题,请参考以下文章

C语言 strcpy_s 函数

代码题(63)— 字符串拷贝

C语言 memcpy 函数

c#代码片段快速构建代码

常用的几个JQuery代码片段

Sublime Text3自定义代码片段