请问一下,c语言中,二元数组。例如a[m][n];如何才能做到自己输入m、n...

发布网友 发布时间:2024-10-23 18:01

我来回答

3个回答

热心网友 时间:2024-11-08 02:25

以前是不可以这样做的 现在最新的一些编译器可以支持 变长数组

热心网友 时间:2024-11-08 02:27

方法1:新C语言标准C99里面有动态声明数组,不过pc机上VC系列不行,用gcc没有问题
方法2:如同二楼的说法,用指针数组来再次分配,但是内存存放也许并不连续,至于其所说的string是C++的类型,C语言没有
方法3:按照二维数组行序优先存放的原则,分配一块连续空间,用指针来按下标操作
示例:
#include <stdlib.h>
#include <stdio.h>

int m, n, *a;
scanf("%d%d", &m, &n);
a = (int *)malloc(sizeof(int) *m *n);
a[i *n + j] = 123; /*就是a[i][j],但是不能如此用两个下标*/

热心网友 时间:2024-11-08 02:26

指针数组。
或者直接用string等函数的数组都支持变长。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com