| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1782 人关注过本帖
标题:一个关于动态二维数组空间的分配问题,大家请帮忙!!!
只看楼主 加入收藏
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
 问题点数:0 回复次数:13 
一个关于动态二维数组空间的分配问题,大家请帮忙!!!
#include <stdio.h>
#include <malloc.h>

int main(void)
{
     int n, k, i, j, avg, sum=0, **a;
     while (scanf("%d %d", &n, &k)!=EOF)
     {
        a = (int **)malloc(sizeof(int)*n*k);
        for (i=0; i<n; i++)
        {
             for (j=0; j<k; j++)
             {
                 scanf("%d", &a[i][j]);
            }
        }
        for (i=0; i<n; i++)
        {
             for (j=0; j<k; j++)
             {
                 //sum+=a[i][j];
                 printf("%d ", a[i][j]);
            }
            //printf("sum=%d ", sum);
        }
        //sum=0;
        free(a);
    }
     system("pause");
     return 0;
}
程序如上。
我在dos下执行gcc -o test.exe test.c,然后运行这个可执行文件,为什么在完成输入以后,程序没有输出??而且退出了呢??
谢谢了先!!!!!!!!!!!
搜索更多相关主题的帖子: 分配问题 动态 空间 
2008-05-05 14:07
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
收藏
得分:0 
汗。。。。。。。。。。。。。。
二维指针不是这样用的。。。。。

[color=white]
2008-05-05 14:09
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
那请指点迷津哦

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-05 14:10
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
收藏
得分:0 
/********************************************************
** Highlight software by yzfy(雨中飞燕) http:// *
*********************************************************/
#include <stdio.h>
#include <malloc.h>

int main(void)
{
    int n, k, i, j, avg, sum=0, *a;
    while (scanf("%d %d", &n, &k)!=EOF)
    {
        a = (int*)malloc(sizeof(int)*n*k);
        for (i=0; i<n; i++)
        {
            for (j=0; j<k; j++)
            {
                scanf("%d", &a[i*k+j]);
            }
        }
        for (i=0; i<n; i++)
        {
            for (j=0; j<k; j++)
            {
                //sum+=a[i][j];
                printf("%d ", a[i*k+j]);
            }
            //printf("sum=%d ", sum);
        }
        free(a);
    }
    system("pause");
    return 0;
}


[color=white]

[[it] 本帖最后由 雨中飛燕 于 2008-5-5 14:18 编辑 [/it]]
2008-05-05 14:13
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#include <stdio.h>
#include <malloc.h>

int main(void)
{
    int n, k, i, j, avg, sum=0, **a;
    while (scanf("%d %d", &n, &k)!=EOF)
    {
        a = (int **)malloc(sizeof(int*)*n);
        for (i=0; i<n; i++)
        {   
             a[i]=(int *)malloc(sizeof(int)*k);
             for (j=0; j<k; j++)
             {
                 scanf("%d", &a[i][j]);
            }
        }
        for (i=0; i<n; i++)
        {
             for (j=0; j<k; j++)
             {
                 //sum+=a[i][j];
                 printf("%d ", a[i][j]);
            }
            //printf("sum=%d ", sum);
        }
        //sum=0;
        free(a);
    }
   // system("pause");
    return 0;
}free(a);

[[it] 本帖最后由 sunkaidong 于 2008-5-5 14:30 编辑 [/it]]

学习需要安静。。海盗要重新来过。。
2008-05-05 14:13
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
谢谢2位高手了,我看看..

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-05 14:15
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
收藏
得分:0 
5楼的代码有误

[color=white]
2008-05-05 14:19
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
但是我运行你们两个人的代码都可以阿...

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-05 14:22
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
燕子说什么地方sizeof(int *)?没觉得啊

学习需要安静。。海盗要重新来过。。
2008-05-05 14:25
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
收藏
得分:0 
请问你malloc调用了多少次,free又调用了多少次?

[color=white]
2008-05-05 14:27
快速回复:一个关于动态二维数组空间的分配问题,大家请帮忙!!!
数据加载中...
 
   



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

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