| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 19394 人关注过本帖, 2 人收藏
标题:如何定义一个动态的二维数组
只看楼主 加入收藏
JackyZhang
Rank: 2
等 级:论坛游民
帖 子:82
专家分:29
注 册:2010-7-12
结帖率:60%
收藏(2)
已结贴  问题点数:20 回复次数:10 
如何定义一个动态的二维数组
在C中如何定义不个动态的二维数组,行(x)和列(y)都可以手动输入,请高人给出代码。
小弟先谢过了。(一维的我会,二维的不知怎么写了)
搜索更多相关主题的帖子: 二维 如何 动态 
2010-12-29 09:44
逐渐学习
Rank: 6Rank: 6
等 级:侠之大者
帖 子:113
专家分:454
注 册:2010-9-26
收藏
得分:3 
程序代码:
#include<stdio.h>
#include<stdlib.h>

int main()
{

 int x,y;    //x为行,y为列
 int i,j;    //循环变量
 int *p;    //定义指针p


 printf("请输入行和列:\n");

 scanf("%d%d",&x,&y);


 //申请x*y*sizeof(int)内存空间
 p=(int*)malloc(x*y*sizeof(int));


 //初始化数组
 printf("请输入%d个数值:\n",x*y);

 for(i=0;i<x;i++)
    for(j=0;j<y;j++)
        scanf("%d",&p[i*y+j]); 


 //打印数组
 printf("输出数组\n");

 for(i=0;i<x;i++)
    for(j=0;j<y;j++)
        printf("%d,",p[i*y+j]);

 return 0;
}
看看行不行?
请输入行和列:
5 4
请输入20个数值:
11 22 33 44 55 66 77 88 99 100 1 2 3 4 5 6 7 8 9 10
输出数组
11,22,33,44,55,66,77,88,99,100,1,2,3,4,5,6,7,8,9,10,

帮人《---》帮己
2010-12-29 10:36
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:3 
如果用C++的话就是:
如定义a[m][n]为动态二维数组,那么
int **a;
a=new int *[m];
for(int i=0;i<m;i++)
a[i]=new int [n];

   唯实惟新 至诚致志
2010-12-29 10:42
JackyZhang
Rank: 2
等 级:论坛游民
帖 子:82
专家分:29
注 册:2010-7-12
收藏
得分:0 
回复 2楼 逐渐学习
这不是二维的吧。

初生牛犊,望多多照顾!
2010-12-29 13:02
hoovi
Rank: 2
等 级:论坛游民
帖 子:12
专家分:34
注 册:2010-11-3
收藏
得分:3 
本人知道的方法:
程序代码:
int **sz(int row,int col)
{
    int **p,i;
    p=(int**) malloc (row*sizeof(int*));
    for(i=0;i<row;i++)
        *p++=(int*) malloc (col*sizeof(int));
    return(p);
}

int sz(int row,int col,int ***p)
{
    int **y,i;
    y=(int**) malloc row*sizeof(int*);
    for(i=0;i<row;i++)
        *y++=(int*) malloc (col*sizeof(int));
    *p=y
}


[ 本帖最后由 hoovi 于 2010-12-30 16:50 编辑 ]
2010-12-29 19:29
li_danwang
Rank: 4
来 自:鄂州
等 级:业余侠客
帖 子:112
专家分:203
注 册:2010-11-12
收藏
得分:3 
#include <iostream.h>
#define M 3
#define N 4
int main()
{
    int (*p)[N]=new int[M][N];//可以直接这样申请空间的
    return 0;
}

没事来C一下...   
2010-12-31 09:23
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:3 
哈哈   又学了一招

                                         
===========深入<----------------->浅出============
2010-12-31 11:08
马后炮
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:156
专家分:560
注 册:2010-12-17
收藏
得分:3 
用指向指针的指针,malloc一个指针数组空间,再分别malloc分配第二级

樱之雪,晓之车
2010-12-31 11:40
dbx12358
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:37
专家分:141
注 册:2008-11-13
收藏
得分:0 
不错,学习了。
2011-11-30 21:05
似水流年去
Rank: 3Rank: 3
来 自:四川
等 级:论坛游侠
帖 子:71
专家分:128
注 册:2012-10-23
收藏
得分:0 
似懂。

[fly]放牛班的春天[/fly]
2013-11-20 23:19
快速回复:如何定义一个动态的二维数组
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013387 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved