请教动态一维数组的问题
											
程序代码:#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数组中的元素将来还要做其它运算。



											

	    

	

