cainiao367 发表于 2013-11-16 18:19:33

来看看指针字符串细节

本帖最后由 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;
}
看到上面代码,说正确的就留下来好好学习,说错误的心里应该高兴高兴,因为上面代码确实是错误的,会造成段错误,还请大家来热烈热烈的讨论讨论呀,



chenbb7 发表于 2013-11-16 18:59:20

首先看你这个是要干嘛,再看未定义,还有一个#inlcude这是啥东西,,,段错误是啥东西

cainiao367 发表于 2013-11-16 19:02:06

chenbb7 发表于 2013-11-16 18:59 static/image/common/back.gif
首先看你这个是要干嘛,再看未定义,还有一个#inlcude这是啥东西,,,段错误是啥东西

不好意思,打错了,{:2_36:}

cainiao367 发表于 2013-11-16 19:03:31

chenbb7 发表于 2013-11-16 18:59 static/image/common/back.gif
首先看你这个是要干嘛,再看未定义,还有一个#inlcude这是啥东西,,,段错误是啥东西

我有点自己的偏见,所以等高手来解答,

my_angel 发表于 2013-11-17 11:04:30

#include <stdio.h>
#include <string.h>
#define LOC   "Where are"
int main (void){
      charstr1[] = "Made in china";
      strcpy (str1,LOC);
      return 0;
}
这样就没问题了。。。

牡丹花下死做鬼 发表于 2013-11-17 11:45:27

char * str1 = "Made in china";这句改一下就好了
char[] str1 = "Made in china";
这样就应该OK了

cainiao367 发表于 2013-11-17 13:04:13

是我用指针指向了一个字符串,如果把另一个字符串付给这个字符串指针的时候,我需要用循环的方式进行赋值,并且最好不要超过原来字符串的长度。用数组能带替字符指针是因为在一开始的时候,内存就申请好了一段长度的内存空间,如果有一个字符串想存进这个数组的话,就直接可以copy过去了,就是编译器已经编译好了用循环的方式存入字符串的单个字符,是否

cainiao367 发表于 2013-11-17 13:50:01

cainiao367 发表于 2013-11-17 13:04 static/image/common/back.gif
是我用指针指向了一个字符串,如果把另一个字符串付给这个字符串指针的时候,我需要用循环的方式进行赋值, ...

我错了,贴上正确的总结以免误导大家,哈
http://blog.csdn.net/lollipop_jin/article/details/8314304
页: [1]
查看完整版本: 来看看指针字符串细节