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

如何定义动态的数组??

楼主tongdegang2005(boy)2005-04-04 11:39:02 在 C/C++ / C++ 语言 提问

现在我想定义一个结构.但是在结构中有一个数组的大小不固定,可不可以在结构中定义一个动态的数组呢?如何定义?谢谢!  
  问题点数:0、回复次数:11Top

1 楼CMyMfc(星际人生:=E.F=FlyForEver)回复于 2005-04-04 11:43:24 得分 0

用指针吧,   或者用STLTop

2 楼pcboyxhy(-273.15℃)回复于 2005-04-04 11:43:33 得分 0

定义一个指针  
  然后需要多大就开多大的空间,  
   
  或者直接用   vectorTop

3 楼lw1a2(一刀 现在改六点下班了:()回复于 2005-04-04 11:44:02 得分 0

还是用类吧,用new  
   
  ps.ISO99已经支持动态数组了,但是只有少数编译器支持,例如devcppTop

4 楼kcengo(Refactoring++)回复于 2005-04-04 11:49:00 得分 0

一般可以先查询需要多大的空间,然后用new或malloc分配一段内存,  
  然后转化成你结构体指针进行访问  
  如:  
  size_t   size   =   queryNeededBufferSize(...);  
  char*   buf   =   new   char[size];  
  retrieveData(buf,...);  
  MY_STRUCT*   data   =   reinterpret_cast<MY_STRUCT*>(buf);  
  processData(data...);  
  delete   []   buf;  
  Top

5 楼ShardowM(骄傲的猫)回复于 2005-04-04 11:52:50 得分 0

用vectorTop

6 楼ericqxg007(还有很多东西要学(卡卡一米阳光))回复于 2005-04-04 12:02:12 得分 0

用指针  
  再在结构中定义一个count记录动态数组的长度Top

7 楼ybb1567()回复于 2005-04-04 12:04:14 得分 0

typedef   ____   SizeT;  
  SizeT   **p=new   SizeT   *[n];  
  delete   p;  
   
  //for   example   **********************  
   
  #include<iostream.h>  
  void   main(){  
  int   **p=new   int   *[2];  
  int   a=999;  
  p[0]=&a;  
  cout<<p[0];  
  }  
   
  以上是分配一个大小固定的,p返回的是个二级指针,指向数组指针的指针,是段连续分配的空间。  
  如果想大小可以改变那么可以用链表吧。  
   
  SizeT   *head;//头指针  
  struct   Data{  
  SizeT   *next,*entry;  
  };  
   
  具体操作可以参照链表创建的实现。  
   
  如果觉得功能还不构,你可以用STL。  
   
   
  Top

8 楼ybb1567()回复于 2005-04-04 12:05:03 得分 0

delete[]   p;  
   
  漏掉了  
   
  Top

9 楼arrowcy(长弓手)回复于 2005-04-04 14:22:03 得分 0

用C++里面的new,delete,或者C里面的malloc,calloc,realloc,free都可以Top

10 楼chunhai12(小海)回复于 2005-04-04 14:28:09 得分 0

强烈建议用vectorTop

11 楼MagicCarmack(MagiC++)回复于 2005-04-04 14:46:05 得分 0

强烈建议用vector  
  STLTop

相关问题

  • 动态二维数组如何定义?
  • javascript如何定义动态数组?
  • 如何定义一个动态的二维数组
  • 100分请教:如何定义一个动态数组?
  • 如何定义动态数组???在线等!!
  • 如何动态的定义一个二维数组?
  • C++中如何动态定义多维数组
  • 如何定义动态数组,不是在sub或function中?
  • 在C中如何定义动态数组?
  • 如何在自定义类型中实现动态数组

关键词

  • 指针
  • 结构
  • 数组
  • 定义
  • sizet
  • 动态
  • buf
  • size

得分解答快速导航

  • 帖主:tongdegang2005

相关链接

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

广告也精彩

反馈

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