c语言中二维数组能根据用户输入决定分配空间大小么?
例如用户输入5 6,以此决定数组大小为a[5][6],用什么方法可以达到此效果,想编一个扫雷的游戏
viilz
11 years, 1 month ago
Answers
想要声明一个动态的二维数组可以根据声明一维数组的思路扩展。
比如想要声明一个动态的二维数组的时候,可是如下声明:
int
array;//一个指向整形的指针,这就相当与动态数组的数组名,因为这个指针+1与数组下标+1的效果一样。
int a;//待输入的维度为a
array=(int *)malloc(sizeof(int)
a)
类似的,可是尝试声明一个二维的整形指针(当然类型是根据你要用的数组类型来定的)来达到动态的效果,示例如下:
int **array;
int a,b//待输入的两个维度值
array = ( int ** )malloc( size0f(int) * a );//首先确定二维数组的数组指针,即定义第一个维度
for( int i = 0; i < b; i++ )
{
array[i] = ( int * )malloc( sizeof(int) * b );//定义第二个维度
}
//至此就完成了一个二维数组的声明。
メ緣紛D天空
answered 11 years, 1 month ago