CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

请帮我看看这个字符串拷贝的小函数。

楼主acneyouth(豆子)2002-04-02 10:11:40 在 C++ Builder / 基础类 提问

inline   void   mstrcpy(char   *   (&   dest),char   *   src)  
  {  
        if(dest!=NULL)  
        delete   []   dest;  
        int   l=strlen(src)+1;  
        dest=new   char[l];  
        strcpy(dest,src);  
        dest[l-1]='\0';  
  }  
   
  请问这个函数有什么问题吗?我对指针不太有把握,又不知道哪本书好一些。在一个函数里把另一个函数new出来的字符串delete掉再重新new会导致问题吗?如果dest在主函数里是用char   *   temp="lksdf"这样的形式初始化的,在这里delete会导致问题吗? 问题点数:30、回复次数:6Top

1 楼caoguangxin(广昕)回复于 2002-04-02 10:41:18 得分 10

1:char   *   (&   dest)应该是char   *   dest吧?  
  2:在if(dest!=NULL)好象是有点问题的,你在其他什么地方会设dest=NULL吗?如果没有,那你这个判断的结果是未知的。  
  Top

2 楼kingcaiyao(aking)回复于 2002-04-02 10:47:00 得分 10

如果你在调用程序(宿主程序)中是这样的话:  
  char   *temp="ldkdk";  
  然后你将temp当作入参数传递给这个函数,那么删除时会出错。Top

3 楼luanma1978(乱马)回复于 2002-04-02 10:49:54 得分 10

new出来字符串在可以访问到它的地方都可以   delete。  
  inline   void   mstrcpy(char   &   dest,char   *   src)  
  {  
        if(dest!=NULL)  
        delete   dest;  
        int   l=strlen(src)+1;  
        dest=new   char[l];  
        strcpy(dest,src);  
        dest[l-1]='\0';  
  }  
  或者  
  inline   void   mstrcpy(char   *   dest,char   *   src)  
  {  
        if(dest!=NULL)  
        delete     dest;  
        int   l=strlen(src)+1;  
        dest=new   char[l];  
        strcpy(dest,src);  
        dest[l-1]='\0';  
  }  
   
   
   
   
  Top

4 楼luanma1978(乱马)回复于 2002-04-02 10:51:18 得分 0

char   *   temp="lksdf"这样的形式初始化的,在这里delete会导致问题吗?  
  这是错的!!  
  delete   必须与new配对使用!!  
  因为无new   所以不能deleteTop

5 楼kingcaiyao(aking)回复于 2002-04-02 10:51:49 得分 0

如果dest是指向一片内存区域,则可以用delete进行删除,而现在dest只是一个指针,这样当然会出错  
  dest既然是一指针,怎么可以用&地址符,这里也是错误的Top

6 楼acneyouth(豆子)回复于 2002-04-02 11:03:54 得分 0

谢谢大家,另外,我以为char   *(&   dest)表示dest是一个"字符指针的引用",难道这不对吗?那"字符指针的引用"该怎么声明呢?Top

相关问题

  • 字符串函数?
  • 字符串函数
  • 除了strcpy()外,有没有其它的字符串拷贝函数?
  • 求字符串转换函数,急,帮帮忙!
  • 谁能帮我写一个分割字符串的函数??
  • javascript 中的字符串函数,请求帮助。
  • 100分请高手帮我写个字符串检测函数
  • ATL & ANSI字符串函数
  • 字符串比较函数
  • 字符串处理函数

关键词

  • 函数
  • 指针
  • null
  • dest
  • 字符串
  • delete
  • src
  • inline
  • strcpy
  • strlen

得分解答快速导航

  • 帖主:acneyouth
  • caoguangxin
  • kingcaiyao
  • luanma1978

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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