字符串变量赋值给字符字针的问题? 请教

wenxindiaolong 2005-09-28 10:20:08
例如:
AnsiString strAppDir;
char * ptrAppDir;
怎么样将字符型指针ptrAppDir指向字符串型变量strAppDir, 其中strAppDir已有赋值.
希望使我能用函数remove(ptrAppDir)
谢谢!
...全文
72 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenxindiaolong 2005-09-28
  • 打赏
  • 举报
回复
高手! 听老兄一席金玉良言,胜读十年书啊!
还望下次多多指教!

binbin 2005-09-28
  • 打赏
  • 举报
回复
所以,如果在需要的时候临时用char*类型,就直接使用c_str()函数的结果但不要保存下来留在以后使用.如果在后面需要的地方还需要这个char*字符串而原来的AnsiString可能会改变了,就只好用strcpy从buffer中复制出来了.
binbin 2005-09-28
  • 打赏
  • 举报
回复
AnsiString是一个类,所以char*类型的指针是不可能指向一个AnsiString对象的.
AnsiString对象内部维护一个动态的buffer存放字符串,成员函数c_str()返回这个buffer的char*类型的指针,但这个指针只是当前buffer的指针,一般不能保存到一个char*指针变量中,因为很可能在以后的操作中buffer的位置发生了变化导致指针失效.比如给一个AnsiString对象赋了一个更长的字符串,将可能导致原来buffer的释放和新buffer的申请,地址就肯定变了.
binbin 2005-09-28
  • 打赏
  • 举报
回复
AnsiString strAppDir="c:\\";
char *ptrAppDir = new char[strAppDir.Length()+1];
strcpy(ptrAppDir, strAppDir.c_str());
Application->MessageBox(ptrAppDir,"message",MB_OK);
//...
//...
delete [] ptrAppDir;

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧