数组大小

C语言 码拜 8年前 (2016-04-25) 1099次浏览
例如说对于数组
m1[x][y]
能否将x, y变为可变的?
为何本人想用scanf这种方法确定x, y却报错?
解决方案

5

变长数组(variable length array type)是C99才引入到C语言中的,C11不要求实现必须支持。
你需要一个支持变长数组的编译器,例如GCC和CLANG。

10

GCC什么的是支持变长数组的,假如是VS什么的是不行的,变长数组坑不少题主用的时候小心
用new定义一个5×5的二维数组:

int m=5,n=5;
int **p=new int*[m];
for(int i=0;i<m;i++)
{
    p[i]=new int[n]; 
}

5

1、假如题主不是用于什么特别的程序,仅仅只是用来实验或做个小作业,可以先定义一个比较大的二维数组,然后输入x、y定义能够使用的数组边界。
2、题主可以malloc(new)一个一维数组,将一维数组当做二维数组使用(对于计算机来说一维数组和二维数组没什么区别,只是人看着有区别而已)
3、按照楼上方法定义二维数组。

5

不能,需要在编译时确定大小,如要可变需要动态分配

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明数组大小
喜欢 (0)
[1034331897@qq.com]
分享 (0)