动态数组的问题?求大牛们解答
在100到1000中,求出个位、十位、百位上都相等的数,将其保存在数组中,在用动态数组时,程序中,for循环中输出可以得到正确的结果,但是在函数体里面就出现垃圾值
程序代码:#include<stdio.h>
#include<stdlib.h>
int *fun(int n);
int main(int argc,char *argv[])
{
int num_1=0;
int *num_2=0;
printf("请输入一个大于100小于等于1000的数!");
scanf("%d",&num_1);
fun(num_1);
return 0;
}
int *fun(int n)
{
int num_1=0;
int num_2=0;
int num_3=0;
int num_4=0;
int count_1=0;
int count_2=0;
int *p_coun=0;
for(count_1=100;count_1<=n;count_1++)
{
num_1=count_1/100;
num_2=count_1%100;
num_3=num_2/10;
num_4=num_2%10;
if((num_1==num_3)&&(num_3==num_4)&&(num_1==num_4))
{
p_coun=(int *)malloc(sizeof(int)*count_2);//用动态,但是不知道这样可不可以??
p_coun[count_2]=count_1;
printf("%d",p_coun[count_2]);//这里能输出我想要的结果
++count_2;
}
}
for(int i=0;i<count_2;i++)
printf("%d\n",p_coun[i]);//输出的结构就乱了........
return p_coun;
}






