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

关于CArray的怪问题。。。。。。。。。。。。。。。。。。。。。。。。。

楼主bowex()2005-04-04 18:21:47 在 VC/MFC / 基础类 提问

CArray<char*,char*>   ArrayStr;  
  char   str[10]="a",strOut[10];  
  ArrayStr.Add(str);  
  strcpy(str,"b");  
  ArrayStr.Add(str);  
  strcpy(strOut,ArrayStr.GetAt(0));  
   
  以上代码运行后,strOut中的内容是"b"   ,   为什么不是"a",   我先添加的"a"啊!而且取得是第一个元素。  
  为何是"b",   如何解决?       多谢各位!!! 问题点数:0、回复次数:12Top

1 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-04-04 18:30:05 得分 0

你存放的是数组地址,内容自己改变了Top

2 楼signoft(晴天)回复于 2005-04-04 18:30:40 得分 0

你CArray<char*,char*>   存的是char*  
  strcpy将str指针所指的内容变成b;  
  看看你输出strcpy(strOut,ArrayStr.GetAt(1));也是b  
  试试  
  CArray<char*,char*>   ArrayStr;  
  char   strA[10]="a",strB[10]="b",strOut[10];  
  ArrayStr.Add(strA);  
  ArrayStr.Add(strB);  
  strcpy(strOut,ArrayStr.GetAt(0));Top

3 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-04-04 18:30:48 得分 0

开始内容是a,后来改成b了,内容不就变了  
  Top

4 楼bowex()回复于 2005-04-04 18:33:20 得分 0

多谢!Top

5 楼surstar(我要写个操作系统出来……)回复于 2005-04-04 18:33:33 得分 0

自己改的,当然就变了哟!Top

6 楼wangjianddy(~~~~>_<~~~~)回复于 2005-04-04 18:35:43 得分 0

当然是B了,你定义的Array是保存指针的  
  也就是说ArraStr.Get(0)就是数组第一个元素的指针。  
   
  CArray<char*,char*>   ArrayStr;  
  char   str[10]="a",strOut[10];  
   
  //把str[0]的指针保存进了链表  
  ArrayStr.Add(str);  
   
  //又把str[0]的内容改成了b,这个时候,ArrayStr.Get(0)内容也是b  
  strcpy(str,"b");      
                                 
  //又把str[0]的指针加入链表,这个时候ArrayStr.Get(1)也指向了str[0]  
  ArrayStr.Add(str);  
   
  strcpy(strOut,ArrayStr.GetAt(0));  
  最后拷贝出来的内容肯定是b阿  
  Top

7 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-04-04 18:37:30 得分 0

把a   ,b分别用不同的数组存放进去就好了Top

8 楼__A__(無羈の心)回复于 2005-04-04 20:06:07 得分 0

这就是使用数组要特别注意的地方,数组名是指向整个数组的指针Top

9 楼speedfirst(speedfirst)回复于 2005-04-04 20:13:44 得分 0

实际上ArrayStr[0]   和   str   strOut指向同一个地方Top

10 楼Mackz(在相互)回复于 2005-04-04 20:51:44 得分 0

每次new一个指针。Top

11 楼angelcool(快乐需要创造)回复于 2005-05-27 12:09:34 得分 0

markTop

12 楼miladuo(辞职ing)回复于 2005-05-27 14:15:44 得分 0

存的是char*  
  又不是内容Top

相关问题

  • CArray能嵌套CArray吗?
  • CArray怎么用?
  • CArray怎么用 ?
  • 关于CArray??
  • CArray<CPoint,CPoint> m_pointArray;
  • CArray 类的问题
  • 动态数组CArray
  • CArray 困惑之二
  • CArray*<CString,CString> functionname() is it right?
  • CArray初级问题

关键词

  • 指针
  • 内容
  • arraystr
  • carray
  • strout
  • 数组
  • getat
  • strcpy
  • 指向
  • str

得分解答快速导航

  • 帖主:bowex

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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