zoukankan      html  css  js  c++  java
  • 2.strcpy使用注意(2)

    分析下述代码:

    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会从源地址一直往后拷贝,直到遇到‘’为止。所以拷贝长度是不定的。如果一直没有遇到‘’导致越界访问非法内存,程序就崩了。

    代码修改如下:

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

      

    拥抱明天! 不给自己做枷锁去限制自己。 别让时代的悲哀,成为你人生的悲哀。
  • 相关阅读:
    发布SpringBoot项目到Docker容器
    Docker网络
    Docker镜像发布到阿里云
    Docker制作Tomcat镜像
    DockerFile指令
    Docker命令
    kafka安装与使用
    刷题第2天
    刷题第1天
    UVA 11107 Life Forms
  • 原文地址:https://www.cnblogs.com/dd2hm/p/7079689.html
Copyright © 2011-2022 走看看