Я изучаю язык динамического выделения памяти c, я нашел ниже код, который использует функцию malloc, но могу ли я использовать код наконец для той же цели, не используя функцию malloc. Оба кода выдают тот же результат
// код, который использует функцию malloc
#include<stdio.h>
#include<malloc.h>
int main(){
int *ptr;
int n,sum=0;
printf("Enter the size of array \n");
scanf("%d",&n);
ptr=(int*)malloc(n*sizeof(int));
if (ptr==NULL)
{
printf("Memory not allocated \n");
}
else
{
for (int i = 0; i < n; ++i)
{
printf("Enter element at %d position \n",i+1);
scanf("%d",(ptr+i));
sum=sum+(*(ptr+i));
}
printf("sum = %d",sum);
}
}
// код, который не использует функцию malloc
#include<stdio.h>
int main(){
int n,sum=0;
printf("Enter the size of array \n");
scanf("%d",&n);
int a[n];
for (int i = 0; i < n; ++i)
{
printf("Enter element at %d position \n",i+1);
scanf("%d",&a[i]);
sum=sum+a[i];
}
printf("sum = %d",sum);
}