Следующий код должен читать динамическое число целых чисел. Однако вывод запутан. Я знаю, что проблему можно решить, используя scanf("%d", &mem_p[i])
. Но почему мы не можем использовать mem_p++
? Для меня это говорит: дайте %d
адрес первому целому числу и увеличивайте указатель.Динамическое число целых чисел с использованием указателей и scanf()
int num_el, i;
int *mem_p;
printf("Number of elements:");
scanf("%d", &num_el);
mem_p = (int *) calloc(num_el, sizeof(int));
printf("Enter %d numbers", num_el);
for(i = 0; i < num_el; i++) {
scanf("%d", mem_p++);
}
printf("The numbers entered was: ");
for(i = 0; i < num_el; i++) {
printf("%d ", mem_p[i]);
}
ВЫВОД:
Number of elements:
3
Enter 3 numbers
11 22 33
The numbers entered was: 1737 3 1729