永发信息网

C语言中怎样定义一个未知行数和列数的二维数组?

答案:7  悬赏:80  手机版
解决时间 2021-04-08 01:06
C语言中怎样定义一个未知行数和列数的二维数组?
最佳答案
1、使用malloc函数,先分配第一维的大小,然后再循环分配每一维的大小。
2、例程,分配3行4列二维数组:

#include 
#include 
int main()
{
    int **a;
    int i, j;
    a = (int**)malloc(sizeof(int*)*3);//为二维数组分配3行
    for (i = 0; i < 3; ++i){//为每列分配4个大小空间
        a[i] = (int*)malloc(sizeof(int)*4);
    }
    //初始化
    for (i = 0; i < 3; ++i){
        for (j = 0; j < 4; ++j){
            a[i][j] = i+j;
        }
    }
    //输出测试
    for (i = 0; i < 3; ++i){
        for (j = 0; j < 4; ++j){
            printf ("%d ", a[i][j]);
        }
        printf ("
");
    }
    //释放动态开辟的空间
    for (i = 0; i < 3; ++i){
        free(a[i]);
    }
    free(a);
    return 0;
}
全部回答
二维数组的第二维是一定要确定的,因为它们是按行存放的
c语言在定义2围数组的时候``
你的 a[n][m]是行不通的
因为他在定义的时候至少要知道第2围的长度``
a[n][100];应该就不会出错了
[ i ][ j ]
用变量定义呗~~~
C语言是不能定义这样的数组的。一定需要的话可以使用表,在新增项的时候分配存储空间
c语言的数组定义时,必须确定行数和列数,因为在c语言中数组不允许动态定义。
a[n][100]太占内存,用指针*(*(a+n)+m)
而且scanf后面要有判断
if(!(2<=n<=100&&2<=m<=100))
printf("error");
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
嫁出去的女儿就不能回娘家过年吗?
2016年4月21号闽cs097t金上线228公里违规
新明发汽车维修护理厂地址在什么地方,想过去
联想笔记本电脑开不了机电源灯闪烁 风扇一直
我自考英语专业毕业,想再考取个证,以便证明
到中流击水,浪遏飞舟。下一句
我停在小区停车位上的车,被送外买的电动车给
人工挖孔桩基础的刚性角到底是怎么定义的?
福元号碧仙茶行旗舰店这个地址在什么地方,我
为什么窈窕淑女里面的口音和今天的不一样?《
电信数字电视错误代码1403只要把机顶盒的用户
水稳,沥青刚施工完成就下雨了,怎么
男生不主动,想他主动,但又不想跟他说,应该
为什么我女朋友喜欢我隔着牛仔裤摸她下面?多
5X2=10中两个乘数各表示什么?
推荐资讯
肇庆总站到封开
怎么开通微博
求赐一个有内涵的字,代替人的简称
ラブノベルス罗马音
etc中的ic卡剪小可以吗
兴宝台球地址在什么地方,想过去办事,
金河之水天上来出自哪首诗
单选题下列科学家中最早提出日心说的是A.开普
win10输入法 怎么添加搜狗输入法
一边充电一边玩手机对手机有害吗
秦皇岛哪有种猕猴桃吗
中西方文化差异 议论文600字 各种文化差异都
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?