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









