来看看指针字符串细节
本帖最后由 cainiao367 于 2013-11-16 19:02 编辑先上代码:
#include <stdio.h>
#include <string.h>
#define LOC "Where are"
int main (void){
char * str1 = "Made in china";
strcpy (str1,LOC);
return 0;
}
看到上面代码,说正确的就留下来好好学习,说错误的心里应该高兴高兴,因为上面代码确实是错误的,会造成段错误,还请大家来热烈热烈的讨论讨论呀,
首先看你这个是要干嘛,再看未定义,还有一个#inlcude这是啥东西,,,段错误是啥东西 chenbb7 发表于 2013-11-16 18:59 static/image/common/back.gif
首先看你这个是要干嘛,再看未定义,还有一个#inlcude这是啥东西,,,段错误是啥东西
不好意思,打错了,{:2_36:} chenbb7 发表于 2013-11-16 18:59 static/image/common/back.gif
首先看你这个是要干嘛,再看未定义,还有一个#inlcude这是啥东西,,,段错误是啥东西
我有点自己的偏见,所以等高手来解答, #include <stdio.h>
#include <string.h>
#define LOC "Where are"
int main (void){
charstr1[] = "Made in china";
strcpy (str1,LOC);
return 0;
}
这样就没问题了。。。 char * str1 = "Made in china";这句改一下就好了
char[] str1 = "Made in china";
这样就应该OK了 是我用指针指向了一个字符串,如果把另一个字符串付给这个字符串指针的时候,我需要用循环的方式进行赋值,并且最好不要超过原来字符串的长度。用数组能带替字符指针是因为在一开始的时候,内存就申请好了一段长度的内存空间,如果有一个字符串想存进这个数组的话,就直接可以copy过去了,就是编译器已经编译好了用循环的方式存入字符串的单个字符,是否 cainiao367 发表于 2013-11-17 13:04 static/image/common/back.gif
是我用指针指向了一个字符串,如果把另一个字符串付给这个字符串指针的时候,我需要用循环的方式进行赋值, ...
我错了,贴上正确的总结以免误导大家,哈
http://blog.csdn.net/lollipop_jin/article/details/8314304
页:
[1]