c++中二维数组长度如何设置为键盘输入的变量?

如题所述

用指针实现

具体代码因为已经好久没写了,所以不写了

首先,声明一个指向要实现的数组的数据类型的指向一维指针数组的指针(2级指针)。例如int **p[] (格式应该是这样的吧)

然后用输入分配一维指针数组的大小

然后再分配每个指针指向空间的大小

使用时用指针代替数组名就行了,如:p[2][0] 代替a[2][0]

 

嘎嘎……还是在眼前写的程序里发现了这个代码段

/******************************************************************************

动态开辟二维数组

******************************************************************************/

 

#include<malloc.h>

#include<stdio.h>

/*输出数组*/

void printArray(int x,int y,int** pia)

{

 int i=0;

 int j=0;

 for(i=0;i<x;i++)

 {

  for(j=0;j<y;j++)

  {

   printf("%4d ",pia[i][j]);

  }

  printf("\n");

 }

}

 

/*创建整形数组[x][y]*/

int** createIntArray(int x,int y)

{

 int i=0;

 int **px=(int**)malloc(sizeof(int *)*x);

 

 for(i=0;i<y;i++)

 {

  px[i]=(int *)malloc(sizeof(int)*y);

 }

 return px;

}

 

/*初始化数组*/

void INITintArray(int x,int y,int** pia)

{

 int i=0;

 int j=0;

 

 for(i=0;i<x;i++)

 {

  for(j=0;j<y;j++)

  {

   pia[i][j]=(i+1)*(j+1);

  }

 }

}

 

int main()

{

 int iArrayXLength=10;

 int iArrayYLength=10;

 int** ipa;

 

 ipa=createIntArray(iArrayXLength,iArrayYLength);

 INITintArray(iArrayXLength,iArrayYLength,ipa);

 printf("输出数组");

 printArray(iArrayXLength,iArrayYLength,ipa);

}

 

 

 

运行结果

请忽视前面的乱码,嘿嘿……

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-14
你好,不能这样,二维数组的第二个下标必需为常量,不能为变量,你可以考虑使用链表本回答被提问者采纳
第2个回答  2012-04-14
数组的下标是不能用变量的
可以将下标的值设置的比键盘输入值大就行了

c++中二维数组长度如何设置为键盘输入的变量?
首先,声明一个指向要实现的数组的数据类型的指向一维指针数组的指针(2级指针)。例如int **p[] (格式应该是这样的吧)然后用输入分配一维指针数组的大小 然后再分配每个指针指向空间的大小 使用时用指针代替数组名就行了,如:p[2][0] 代替a[2][0]嘎嘎……还是在眼前写的程序里发现了这个代码...

...定义一个二维数组,然后把我从键盘上输入的变量存进这数组里面_百度...
1.定义m*m的数组。int m,**p;p=new int*[m];2.定义n*m的数组 int n;int (*p)[2]= new int [n][2];\/\/此处的2不能是变量 3.定义n*m的二维数组 float tt = new float*[n];for (int i=0;i 评论 0 0 加载更多

C++ 输入一个m行n列的二维数组,m,n由键盘输入,该怎么定义?
C++不支持变长数组。所以你要考虑到M 和 N的最大是多少。然后声明的数组长度就是多少。多出来的数组单元就不要去管他。

如何初始化一个2维数组并通过键盘输入参数?C++
void main(){ int a[2][3];\/\/判断循环次数_即数组元素:2+1+3+1=7 int b;for(int n=0;n<=2;n++){\/\/从键盘接受数据对此二维数组初始化 for(int m=0;m<=3;m++){ cout<<"请输入a"<<n<<m<<endl;cin>>a[n][m];\/\/请输入整型数值,否则会失去精度或者出错 } } for(int i...

c语言c++语言如何用二维数组做形参?
C\/C++中,二维数组的第一维的每一个元素都是一维数组。所以,用指向一维数组的指针或用第一维维数空缺的二维数组作为函数的形式参数都能达到目的。设处理数组为int型,举例代码如下:\/\/#include "stdafx.h"\/\/If the vc++6.0, with this line.#include "stdio.h"void myprint(int (*p)[5]){...

C++中对于一个二维数组,如何获得它第一维和第二维的长度?
如果数组为float型,则此处改为sizeof(float),其它类推。。。int b0=sizeof(a);\/\/第一维度占用的字节数目int len0=b0\/b1; \/\/第一维度长度printf("数组第一维长度为%d;\\n数组第二维长度为%d\\n",len0,len1);return;}提供一自编简短例程,供参考。对于三维、四维等高维度数组可用同样方法求取...

c++二维数组输入输出问题
cin >> a[i][100]; 只能输入一个字母,改为cin >> a[i];cout << a[i][100]<<endl; 这个是输出每个字符串第100个字符,而且这个for循环只能将输入字符串的顺序颠倒,及先输入后输出 最好定义的时候初始化char a[100][100] = {0};...

c++中怎样实现二维数组的任意输入
采用堆分配,用new动态创建二维数组,维度m,n可以用scanf输入 \/\/分配 int **tmp = new int*[m]; for(int i = 0;i<m;i++) { tmp[i] = new int[n]; } \/\/释放 for(int i = 0;i<m;i++) { delete[] tmp[i]; } delete []tmp;...

c++中怎么输入二维数组
1、首先,定义一个常量SIZE,控制数组大小。2、定义一个自定义函数,用来输入二维数组各元素的值。3、用一个二重循环,输入二维数组的值。4、主函数中,定义两个整型变量m和n,保存数组的行和列。5、接着,定义一个二维数组。6、输入数组的行列数,保存在变量m和n中。7、然后,输入二维数组,保存...

c++中怎么输入二维数组
1、首先,定义一个常量SIZE,控制数组大小。2、定义一个自定义函数,用来输入二维数组各元素的值。3、用一个二重循环,输入二维数组的值。4、主函数中,定义两个整型变量m和n,保存数组的行和列。5、接着,定义一个二维数组。6、输入数组的行列数,保存在变量m和n中。7、然后,输入二维数组,保存...

相似回答
大家正在搜