动态数组的问题?求大牛们解答
在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; }