首页 > 代码库 > char* A ;char*B strcpy(A,B)出错
char* A ;char*B strcpy(A,B)出错
今天突然用到strcpy()函数
于是
char* A = "ABCDEFG";
char* B = "GGGG";
strcpy(A,B);
编译通过,但是运行竟然直接结束了,报错;
为什么呢?
因为char * A = “ABCDEFG”;
"ABCDEFG"这是个const性质的,那么它存在于静态存储区,A指针指向静态存储区,但是不能改变它的值
所以不能使用strcpy函数
而 char a[] = "abcdf";
char b[] = "cds"
strcpy(a,b);
可以达到想要的效果,因为
char a[] = "abcdef";这个“abcdef”还是在静态存储区,但是会有有一份副本用于初始化数组a在栈上;
所以可以修改!
很多知识敲代码遇到错误才会学会,上面的原因用到的知识点以前知道,但是还是写出了错误的代码,错了才思考为什么错的,然后才想起来学过的知识点;
所以多写代码!!!在错误中学习。
char* A ;char*B strcpy(A,B)出错
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。