找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 165|回复: 0

C/C++ 二维数据 静态动态声明和初始化及访问方法实例

[复制链接]

1

主题

0

回帖

35

积分

管理员

积分
35
发表于 2024-3-16 09:48:36 | 显示全部楼层 |阅读模式
  1. void D2A采用test()
  2. {       
  3.         int rows=3;
  4.         int cols=4;
  5.         int i,j;
  6.         int *p;
  7.         char* pret;
  8.         //静态声明二维数据
  9.         /*
  10.     int a[3][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24}};
  11.     //赋值
  12.         for(i=0;i<rows;i++)
  13.         {
  14.                 for(j=0;j<cols;j++)
  15.                 {
  16.                         a[i][j]=i*4+j;                    
  17.                 }
  18.         }
  19.                 //
  20.         p=a[0];  //数组首地址
  21.         //一般二维数据读取法
  22.         pret="一般二维数据读取法\n";       
  23.         for(i=0;i<rows;i++)
  24.         {
  25.          for(j=0;j<cols;j++)
  26.                  {
  27.                          char* ret=new char[50];
  28.                          memset(ret,0,50);
  29.              sprintf(ret,"%d,",a[i][j]);
  30.                          if(strlen(pret)<=0)
  31.                          {
  32.                  pret=ret;
  33.                          }
  34.                          else
  35.                          {
  36.                              pret=a2u(pret,ret);
  37.                          }
  38.                  }
  39.                  pret=a2u(pret,"\n");
  40.         }
  41.         //*(p+5)=pos(0,1,2,3,4,5)=12
  42.         //sprintf(ret,"test 2 array=%d,%d",*(p+5),a[1][1]);        //12,12
  43.         ShowMsg(pret);        
  44.         //输出结果
  45.         //一般二维数据读取法
  46.         //1,2,3,4
  47.         //11,12,13,14
  48.         //21,22,23,24
  49.         */
  50.         //动态声明二维数据       
  51.         int zlen=rows*cols;
  52.         int **a=new int*[rows];
  53.         for(i=0;i<rows;i++)
  54.         {
  55.                 a[i]=new int[cols];
  56.         }
  57.         p=a[0];  //数组首地址
  58.         //赋值
  59.         for(i=0;i<zlen;i++)
  60.         {
  61.                 *(p+i)=i;
  62.         }       
  63.         //指针读取二维数据方法
  64.         pret="指针读取二维数据方法\n";
  65.         for(i=0;i<zlen;i++)
  66.         {
  67.                 char* ret=new char[50];
  68.                 memset(ret,0,50);
  69.         sprintf(ret,"%d,",*(p+i));
  70.                 if(strlen(pret)<=0)
  71.                 {
  72.             pret=ret;
  73.                 }
  74.                 else
  75.                 {
  76.                     pret=a2u(pret,ret);
  77.                 }         
  78.         }
  79.         ShowMsg(pret);
  80.         //输出结果
  81.         //指针读取二维数据方法
  82.         //1,2,3,4,11,12,13,14,21,22,23,24
  83.         return;
  84.         //-----------------------------------
  85. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2025-1-1 18:24 , Processed in 0.126821 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表