Я новичок в языке C. У меня проблема с распределением динамического массива.Использование динамической памяти в C
Я использовал для выделения памяти вне цикла, например a=(int*)malloc(5* sizeof(int));
, и все прекрасно работало. Теперь я хочу выделить память каждому элементу один за другим в цикле, используя malloc()
, но код не работает.
Я пробовал различные варианты, такие как scanf("%d",a) &a++,scanf("%d",&a[i]);
и т. Д., Но не смог. Если кто-нибудь скажет мне, что я делаю неправильно, и полностью объясните мне концепцию, я буду благодарен.
Код, который у меня возникают проблемы с заключается в следующем:
#include <stdio.h>
#include<stdlib.h>
int main()
{
int *a;
int i;
system("clear");
for(i=0;i<5; i++)
{
a=(int *)malloc(sizeof(int));
printf("%u",&a);
printf("please enter the element in array");
scanf("%d",a[i]);
}
for(i=0;i<5; i++)
{
printf("\nthe %d entry in the array %d",i,a[i]);
}
return 0;
}
Правильно ли форматирование действительно так сложно? –