| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3235 人关注过本帖
标题:数组容量溢出怎么办
只看楼主 加入收藏
gao16forever
Rank: 2
等 级:论坛游民
帖 子:32
专家分:29
注 册:2011-11-29
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
数组容量溢出怎么办
题目要求输入一个N,然后输入N*N的二位矩阵,1=<N<=1000,可是好像N>160的时候,数组就溢出了吧。。没有那么大的容量了吧。。该怎么办?
搜索更多相关主题的帖子: 怎么办 矩阵 
2011-12-15 23:08
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:3 
写到文件 在文件里操作 借助硬盘
2011-12-16 12:37
gao16forever
Rank: 2
等 级:论坛游民
帖 子:32
专家分:29
注 册:2011-11-29
收藏
得分:0 
还有其他的办法么。。我表示文件还没学过。。
2011-12-16 22:10
樾宝
Rank: 3Rank: 3
来 自:常德
等 级:论坛游侠
帖 子:72
专家分:147
注 册:2011-8-19
收藏
得分:0 
那就换种方式来写程序。
你是不是设计导弹哦?
要那么大干嘛?
2011-12-17 10:31
qwermy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:34
专家分:160
注 册:2011-12-3
收藏
得分:2 
不知道指针数组行不? (*p)[N];
2011-12-17 11:34
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:5 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>

int **alloc(size_t);
void cleanup(int **, size_t);

int main(void)
{
    size_t n, i, j;
    int **p2Array;
   
    scanf("%u", &n);
    p2Array = alloc(n);
    if (p2Array == 0) {
        // TODO ...
        exit(EXIT_FAILURE);
    }
    for (i = 0; i < n; ++i)
        for (j = 0; j < n; ++j)
            scanf("%d", p2Array[i] + j);
    // TODO...
    cleanup(p2Array, n);
}

int **alloc(size_t n)
{
    size_t i;
    int **p2Array = calloc(n, sizeof(int *));
   
    for (i = 0; i < n; ++i)
        p2Array[i] = memset(calloc(n, sizeof(int)), 0, n * sizeof(int));
   
    return p2Array;
}

void cleanup(int **p2Array, size_t n)
{
    size_t i;

    for (i = 0; i < n; ++i)
        free(p2Array[i]);
    free(p2Array);
}

结构大概是这样:
图片附件: 游客没有浏览图片的权限,请 登录注册

My life is brilliant
2011-12-17 12:25
快速回复:数组容量溢出怎么办
数据加载中...
 
   



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

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