--------------------WORKS------------------------------------
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, *p, i;
printf("HOW MANY NUMBERS: ");
scanf("%d", &n);
if (p == NULL)
{
printf("MEMORY ALLOCATION UNSUCCESSFUL");
return 1;
}
for (int i = 0; i < n; i++)
{
printf("\nENTER NUMBER %d: ", i + 1);
scanf("%d", p + i);
}
printf("\nTHE NUMBERS ARE:\n");
for (i = 0; i < n; i++)
printf("%d ", *(p + i));
free(p);
return 0;
}
---------------------------DOESNOT WORK------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, *p, i;
printf("HOW MANY NUMBERS: ");
scanf("%d", &n);
if (p == NULL)
{
printf("MEMORY ALLOCATION UNSUCCESSFUL");
return 1;
}
//i did 'i' instead of 'int i'
for ( i = 0; i < n; i++)
{
printf("\nENTER NUMBER %d: ", i + 1);
scanf("%d", p + i);
}
printf("\nTHE NUMBERS ARE:\n");
for (i = 0; i < n; i++)
printf("%d ", *(p + i));
free(p);
return 0;
}
when i removed the int from for loop the memory doesnot seems to be allocated and i don't seem to understand why? but when i do block scope declaration i.e int = 0 in loop the code works fine