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

二维动态数组怎么定义?

楼主xurenyi1980(阿迦门侬)2004-05-01 23:14:34 在 VC/MFC / 基础类 提问

一维的两位大哥已经为我做了解答  
  如果是二维的是不是就是  
  CString   strtemp;  
  GetDlgItemText(IDC_EDIT1,   strtemp);  
   
  int   nNum   =   atoi(strtemp);  
  int   mNum   =   atoi(strtemp);  
  int   *data   =   new   int[nNum][mNum];  
   
  呵呵,有点笨哦!!!  
   
  问题点数:20、回复次数:6Top

1 楼mscf(扎西特勒)回复于 2004-05-01 23:36:44 得分 0

以前试过,好像只能留一维为变量,其它的需要常量Top

2 楼sgnaw(李逍遥)回复于 2004-05-01 23:46:35 得分 10

long     **a;  
  a   =   (long   **)malloc(M   *   N   *   sizeof(long));  
  ...  
  用完了就    
  free(a);  
   
  ---------------------------------------  
  举个用   new   的例子:  
  //DynamicArray.cpp   动态二维数组  
  #include   <iostream>  
  using   namespace   std;  
   
  int   main()  
  {  
      int   **   x;  
      int   i,j,rows(2),cols(3);  
      try   {  
          //创建  
          x   =   new   int   *   [rows];  
          for   (int   i   =   0   ;   i   <   rows;   i++)   x[i]   =   new   int   [cols];  
          //初始化  
          for(   i=0;   i<2;   i++)  
      {  
      for(   j=0;   j<3;   j++)  
      {  
          x[i][j]   =   i   +   j;  
      cout   <<   x[i][j]   <<   "   ";  
      }  
          cout   <<   endl;  
      }  
          //释放  
          for(int   i=0;   i<rows;   i++)   delete   [   ]   x[i];  
          delete   [   ]   x;  
          x   =   0;  
      }  
      catch   (xalloc)   {  
          cout   <<   "create   dynamic   array   caused   error."   <<   endl;  
      }  
  }  
   
  /*  
  运行结果:  
  0   1   2  
  1   2   3  
  */Top

3 楼pomelowu(羽战士)回复于 2004-05-02 00:04:58 得分 0

就是楼上的方法,用二重指针,然后分配空间。要不就用CArray,也是很方便的Top

4 楼bm1408(向va_list学习~不用VC好多年~)回复于 2004-05-02 00:29:17 得分 10

.有三中方法:  
  1)用vector;如:  
    vector<   vector<   int   >>   m(   4,   vector<int>(5)   );  
   
            for   (   int   i   =   0;   i   <   m.size();   i++   )                   //   4  
                    for   (   int   j   =   0;   j   <   m[i].size();   j++   )       //5  
                                  .....  
  2)int   **p   =   new   int   *[   4];  
      for   (   int   i   =   0;   i   <   4;   i++   )  
                p[i]   =   new   int[5];  
  3)一维数组模拟:  
   int   *p   =   new   int[m*n];  
      for   (   int   i   =   0;   i   <   m   ;   i++   )  
          for   (   int   j   =0;   j   <   n;   j++   )  
                  p[i*n+j]   =   ..  
   
  Top

5 楼BitBlt(Raster Operater)回复于 2004-05-02 00:35:16 得分 0

学VB吧,VB干这个很简单的,  
  redim   var(11,22)Top

6 楼simouse()回复于 2004-05-02 00:41:34 得分 0

#include   "iostream"  
  using   namespace   std;  
   
  void   show(int   *array,int   x,int   y)  
  {  
  for(int   i=0;i<x;i++)  
  {  
  for(int   ii=0;ii<y;ii++)  
  cout<<"\t"<<array[i*x+ii];  
  cout<<endl;  
  }  
   
  }  
   
  int   main(int   argc,   char*   argv[])  
  {  
  int   array[4][4]=  
  {  
  {1,2,3,4},  
  {4,5,6,7},  
  {8,9,10,11},  
  {12,13,14,15}  
  };  
   
  show((int*)array,4,4);  
  return   0;  
  }  
  Top

相关问题

  • 动态二维数组如何定义?
  • 如何定义一个动态的二维数组
  • 如何动态的定义一个二维数组?
  • c中怎样动态定义二维数组?谢谢
  • c++中二维动态数组的定义方法求教!!
  • delphi如何动态定义一个二维数组啊???
  • 动态二维数组?
  • 怎样定义二维的Variant数组?
  • 怎么定义一个二维数组?
  • CArray定义二维数组问题。

关键词

  • 二维
  • strtemp
  • long

得分解答快速导航

  • 帖主:xurenyi1980
  • sgnaw
  • bm1408

相关链接

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

广告也精彩

反馈

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