鱼C论坛

 找回密码
 立即注册
查看: 3089|回复: 7

[技术交流] 来看看指针字符串细节

[复制链接]
发表于 2013-11-16 18:19:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-16 18:59:20 | 显示全部楼层

回帖奖励 +1 鱼币

首先看你这个是要干嘛,再看未定义,还有一个#inlcude这是啥东西,,,段错误是啥东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-16 19:02:06 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-16 19:03:31 | 显示全部楼层
chenbb7 发表于 2013-11-16 18:59
首先看你这个是要干嘛,再看未定义,还有一个#inlcude这是啥东西,,,段错误是啥东西

我有点自己的偏见,所以等高手来解答,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-17 11:04:30 | 显示全部楼层
#include <stdio.h>
#include <string.h>
#define LOC   "Where are"
int main (void)  {
      char  str1[] = "Made in china";
      strcpy (str1,LOC);
      return 0;
}
这样就没问题了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-17 11:45:27 | 显示全部楼层
char * str1 = "Made in china";这句改一下就好了
char[] str1 = "Made in china";
这样就应该OK了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-17 13:04:13 | 显示全部楼层
是我用指针指向了一个字符串,如果把另一个字符串付给这个字符串指针的时候,我需要用循环的方式进行赋值,并且最好不要超过原来字符串的长度。用数组能带替字符指针是因为在一开始的时候,内存就申请好了一段长度的内存空间,如果有一个字符串想存进这个数组的话,就直接可以copy过去了,就是编译器已经编译好了用循环的方式存入字符串的单个字符,是否
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-17 13:50:01 | 显示全部楼层
cainiao367 发表于 2013-11-17 13:04
是我用指针指向了一个字符串,如果把另一个字符串付给这个字符串指针的时候,我需要用循环的方式进行赋值, ...

我错了,贴上正确的总结以免误导大家,哈
http://blog.csdn.net/lollipop_jin/article/details/8314304
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 08:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表