CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

菜鸟提问:strcpy(char *, const char *)为什么报错?

楼主lr_eagle(LOSER)2004-12-01 21:17:45 在 C/C++ / C语言 提问

strcpy(char   *,   const   char   *)为什么报错?  
  最好给一些详细的堆栈上的处理过程 问题点数:0、回复次数:20Top

1 楼zlhran(楚云飞)回复于 2004-12-01 21:23:39 得分 0

?????????????Top

2 楼milozy1983(Detective)回复于 2004-12-01 21:26:59 得分 0

类型不匹配吧,和函数的具体过程有关Top

3 楼zxm927(淡泊明志)回复于 2004-12-01 21:33:55 得分 0

库函数怎么会报错,肯定是你调用不对了.总得把你的调用代码拿出来show一下吧.Top

4 楼xidwong(小熊)回复于 2004-12-01 21:57:29 得分 0

就是,光贴一个库函数,谁知道你是怎么用得啊。Top

5 楼xtzyz()回复于 2004-12-01 22:18:48 得分 0

push   const   char   *  
  push   char   *  
  call   strcpy  
  大概就是这样Top

6 楼ywfscu(乌雕)回复于 2004-12-01 22:41:54 得分 0

你没有保证第二个字符串以‘\0'结尾?????Top

7 楼caijize(砂子)回复于 2004-12-01 22:45:43 得分 0

有没有Include头文件啊?Top

8 楼rowdy(阿丘)回复于 2004-12-01 22:47:26 得分 0

楼上的,  
  在问些啥子哦???Top

9 楼greenteanet(扎扎实实打基础,保持一颗平常心。)回复于 2004-12-01 23:42:04 得分 0

楼主这样子写,应该没有错误,可能是您在调用函数的时候,或者您的const没有结束标记.还是把您的代码贴出来,大家也许可以帮您一下.Top

10 楼lr_eagle(LOSER)回复于 2004-12-02 09:54:59 得分 0

#include   "stdafx.h"  
  #include   <string>  
  using   namespace   std;  
   
  int   main(int   argc,   char*   argv[])  
  {  
  char   *ch   =   "asdf";  
  strcpy(ch,   "1234");  
  printf(ch);  
  printf("\n");  
  return   0;  
  }  
   
  错误:该内存不能写  
   
  改成char   ch[5]   =   "asdf";   就好使了  
   
  这好像是个很经典的问题,我以为大家一看就知道呢,呵呵Top

11 楼bailindf(DF)回复于 2004-12-02 10:36:32 得分 0

问题在于你定义的char   *ch="asdf";  
  此定义将"asdf"视为字符串常量,存放在静态存储空间中,不可变。  
  应该定义为char   ch[]="asdf";Top

12 楼micemice(方法)回复于 2004-12-02 10:47:34 得分 0

在哪里发新贴?找不到啊  
   
  问题:const是什么啊?Top

13 楼andyzhouji(无心之梦)回复于 2004-12-02 11:21:49 得分 0

你的char   *ch都没分配空间,指针是随便指的当然包错了!!  
  后来的树组有空间就OK了!Top

14 楼bugbugfly(君住长江头)回复于 2004-12-02 12:47:46 得分 0

同意   micemice(方法)Top

15 楼bugbugfly(君住长江头)回复于 2004-12-02 12:49:10 得分 0

错了,是bailindf(DF)Top

16 楼micemice(方法)回复于 2004-12-02 13:21:40 得分 0

问题请教:  
  1.String   &   operate=(const   String   &other);是什么意思?  
  2.other.m_data是什么意思?  
   
   
  class   String   {  
  public:  
    String   &   operate=(const   String   &other);  
  private:  
    char   *m_data;  
  };  
  String::string(const   String   &other)  
  {  
    int   length   strn(other.m_data);    
    ...  
  }Top

17 楼sunlu_eric(天使预备役)回复于 2004-12-02 13:22:29 得分 0

同意楼上的,空间已经分配了!!!  
  Top

18 楼sunlu_eric(天使预备役)回复于 2004-12-02 13:24:14 得分 0

那是运算符重载,  
  下面的是调用类的数据成员!!!  
  这是类,看看!!!Top

19 楼yingwei19800524(应伟)回复于 2004-12-02 16:52:07 得分 0

你没有保证第二个字符串以‘\0'结尾?????  
  Top

20 楼qiqi162002(思想)回复于 2004-12-02 17:23:48 得分 0

char   *ch   =   "asdf";//这里的ch为常量字符串,不能改变其值,  
  定义成数组才行Top

相关问题

  • 为什么从const char*类型向char*赋值会报错,而从const char向char赋值就没问题?
  • error C2664: 'strcpy' : cannot convert parameter 2 from 'class CString (void) const' to 'const char *'
  • const char* const* const* p;
  • 使用static const int size=100为什么会报错?
  • 在类中定义static const int a=10 报错
  • 为什么截取wm_char消息老报错?
  • 请教一题:如何不调用C库函数实现char *strcpy(char* strDest,const char* strSrc).来者有分!
  • 请教一题:如何不调用C库函数实现char *strcpy(char* strDest,const char* strSrc).来者有分!
  • operator char*() const {return ...;}
  • const char *和ansistring

关键词

  • 函数
  • 报错
  • 字符串
  • asdf
  • 调用
  • strcpy
  • 定义
  • ch
  • const
  • 空间

得分解答快速导航

  • 帖主:lr_eagle

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo