| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1709 人关注过本帖
标题:请教动态一维数组的问题
只看楼主 加入收藏
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
结帖率:95%
收藏
已结贴  问题点数:20 回复次数:11 
请教动态一维数组的问题
程序代码:
#include <stdafx.h>
#include <stdio.h>
# include <stdlib.h>

void main()
{
    int a[]={0, 1,2,3,5, 0, 5, 0, 3,2,1, 0,0,1,2,0, 4};   

    int i=0, n=0, m;  
  
    int *b;
    b=(int*) malloc( sizeof(int) * m);
    if (b == NULL)
    {
        printf ("fail\n");
        exit(1);
    }
       

    while(i<18)
    {   

        if(a[i]!=0)
        {
            b[n]=a[i];
            n++;
        }       

        i++;
    };

    for(i=0;i<n-1;i++)
        printf("b[%d] %d\n", i, b[i]);
    printf("%d\n", m);

    free(b);
}

程序目的:统计一个数组中非0元素
问题:因为不知道非0元素的个数,所以想用动态一维数组储存。
说明:实际处理问题的比较复杂,是个大型程序。因此,虽然此处程序运行结果正确,但不知 随着程序的复杂和数组中元素的增多,m是否能开辟出相应的内存
补充:事先定义一个超大数组的做法不太赞成,因为b数组中的元素将来还要做其它运算。
搜索更多相关主题的帖子: color 
2011-05-27 20:00
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:5 
c语言中有一个函数也许能够解决你的这个问题:realloc

愿用余生致力编程
2011-05-27 20:14
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:2 
C99支持可变长数组,比如:
scanf("%i",&num);
int array[num];
具体这个num能是多大的上限,我可不知道!

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-27 20:14
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
收藏
得分:0 
回复 2楼 我菜119
具体如何用啊?
万一我b数组中存了几万个元素,而且这个只是程序的一小部分呢?

非计算机专业自学新手向大家请教
2011-05-27 20:16
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:3 
char* a = mallco(100);

if (t > 100)
{
    free(a);
    a = malloc(100+100);
}

我就是真命天子,顺我者生,逆我者死!
2011-05-27 20:18
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
收藏
得分:0 
回复 3楼 ansic
我是外行,不懂。
给下具体操作吧,我a数组中的元素是由另一个程序产生的,这里我只是为了方便描述才简化问题

非计算机专业自学新手向大家请教
2011-05-27 20:19
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:5 
realloc这个函数是在堆上分配内存,但是如果说你的这个程序存储的数据太多了的话,以至于把堆得内存给占用了也就是说堆内存不够的话,你可以使用文件,把你的这些数据先存放到文件中,然后从文件中读取需要的数据!!
只是一个小小的建议而已!

至于realloc这个函数怎么用,你上网搜索一下,不要什么都去问别人!

愿用余生致力编程
2011-05-27 20:20
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
收藏
得分:0 
回复 5楼 BlueGuy
麻烦您注解说明一下,我水平低,
谢谢!

非计算机专业自学新手向大家请教
2011-05-27 20:21
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
收藏
得分:0 
回复 7楼 我菜119
教训的对!哈哈。我去查查

非计算机专业自学新手向大家请教
2011-05-27 20:23
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
收藏
得分:0 
回复 7楼 我菜119
其实也不是我懒惰,我查了,大部分都是一大堆,不知所云。
我是外行啊,对“堆”是什么也不懂,对“内存”也只是一知半解。
所以还是不会用。
哪位简单写个代码,我去琢磨。

非计算机专业自学新手向大家请教
2011-05-27 20:33
快速回复:请教动态一维数组的问题
数据加载中...
 
   



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

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