我的任务是从< 0; 99>加载未知数量的整数。然后打印整数之间的所有第二个数字,后跟第二个数字出现的数字的第一个数字。例如:
对于数字:
1 2 5 2 25 27 93 4 93 93 58 51
我应该得到这个输出:
0 | 12245
2 | 57
5 | 18
9 | 333
我认为错误在某处:
digit_holder[number/10] = (int *) realloc(digit_holder[number/10],(realloc_count[(number/10)]*sizeof(int)));
digit_holder[number/10][realloc_count[number/10]-1] = number % 10;
完整代码:
int main()
{
int i,j, number,realloc_count[10], *digit_holder[10];
for (i = 0; i<10;i++)
realloc_count[i] = 0;
while (scanf("%d",&number) > 0){
realloc_count[number/10]++;
digit_holder[number/10] = (int *) realloc(digit_holder[number/10],(realloc_count[(number/10)]*sizeof(int)));
digit_holder[number/10][realloc_count[number/10]-1] = number % 10;
}
for (i=0;i<10;i++){
printf("%d | ",i);
for (j = 0; j < realloc_count[j]; j++)
printf("%d",digit_holder[i][j]);
putchar('\n');
}
return 0;
}
答案 0 :(得分:1)
realloc()
第一个参数是malloc或realloc可以返回的指针,或者是NULL。您需要将digit_holder
数组条目初始化为NULL。