Перейдите через следующие петли:Добавления указателей в C
Я особенно путается в первом цикле,
первого цикл:
for(i = 0; i < n; i++)
{
scanf("%d", ptr + i);
}
for(i = 0; i < n; i++)
{
sum = sum + (*(ptr + i));
}
второго цикл:
int *x ;
for(i = 0; i < n; i++)
{
x = ptr + sizeof(i);
scanf("%d",x);
}
for(i = 0; i < n; i++)
{
x = ptr + sizeof(i) ;
sum = sum + (*x);
}
Зачем вводить элементы в массиве с помощью malloc с использованием вышеперечисленных петель g ive же результат? Почему первая и вторая петля дают равный или правый результат?
Почему (ptr + i) и ptr + sizeof (i) работают в одном и том же состоянии?
Вся программа
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define NULL 0
int main()
{
int *ptr;
int i, n, sum = 0 ;
float avg ;
printf("Enter the number of elements you want to store in the array.");
scanf("%d", &n);
ptr = (int *) malloc(n * sizeof(int)) ; /*Dynamic Memory allocation*/
if(ptr == NULL)
{
printf("The required amount of memory is not available. ");
getch();
exit(0);
}
else
{
printf("Enter the elements\n");
for(i = 0; i < n; i++)
{
scanf("%d", ptr + i);
}
for(i = 0; i < n; i++)
{
sum = sum + (*(ptr + i));
}
printf("\nThe sum of %d elements entered is = %d",n , sum);
avg = sum/n ;
printf("\nThe average of %d number of the array is %f", n, avg);
}
printf("\n");
getch();
}
Как объявляется 'ptr'? – lurker
'x' объявлен как' int', и вы пытаетесь разыменовать его. – mathematician1975
int * x; Прошу прощения, я не входил во всю программу –