标题:各位高手帮忙看一下,输入二维数组,与输出是的指针为啥不一样呢?困惑中… ...
只看楼主
小鱼小鱼
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-7-11
结帖率:50%
已结贴  问题点数:20 回复次数:4 
各位高手帮忙看一下,输入二维数组,与输出是的指针为啥不一样呢?困惑中………
各位高手帮忙看一下,输入二维数组,与输出是的指针为啥不一样呢?困惑中………
#include"stdio.h"
int **create(int rows,int cols)
{
    int **x,i;
    x=(int **)malloc(rows*sizeof(int));
    for(i=0;i<rows;i++)
        x[i]=(int*)malloc(cols*sizeof(int));//向系统中申请了rews*rols个sizeof(int)个字节的连续系统空间
    return(x);}
main()
{
    int **x,row,col,i,j;
    printf("input row and col:");
    scanf("%d%d",&row,&col);
    x=create(row,col);
    printf("input the values:");
    for(i=0;i<row;i++)
        for(j=0;j<col;j++)
            scanf("%d",(*(x+i)+j));//从键盘中输入二维数组的每个元素
    for(i=0;i<row;i++)
    {
        for(j=0;j<col;j++)
            printf("%4d",*(*(x+i)+j));
        printf("\n");
    }
}
搜索更多相关主题的帖子: include return create values input 
2011-08-07 22:23
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
得分:10 
函数中申请的内存随着函数的结束被释放

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-08-07 23:03
小鱼小鱼
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-7-11
得分:0 
非常感谢,不过还是有点困惑(*(x+i)+j));与",*(*(x+i)+j));的不同
2011-08-08 07:58
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
得分:10 
         (*(x+i)+j))表示第i行j列的地址;*(*(x+i)+j))表示对第i行j列的地址接触引用就是取那个地址上的值;
2011-08-08 10:43
小鱼小鱼
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-7-11
得分:0 
get it!
2011-08-09 09:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-347022-1-1.html




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

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