Вы не можете просто использовать int *ptr
и рассматривать его как массив. Вам нужно создать массив и выделить для него место, указав размер. Вы можете сделать его как массив, как в первом варианте, или выделить его, используя malloc()
во втором варианте. Я предлагаю первый, потому что он выполняется быстрее, и кажется, что ваш массив имеет фиксированную длину. Второй вариант предназначен для приложений, в которых вы не знаете размер массива до времени выполнения.
#include <stdio.h>
int main(void)
{
int ptr[4]; //you need to specify array size first
int index;
for (index = 0; index < 4; index++)
{
ptr[index]=index;
printf("%d\n", ptr[index]);
}
return 0;
}
Вы также можете использовать malloc()
, если хотите выделить его в куче, но обязательно free()
это, чтобы освободить память, или произойдет утечка памяти.
#include <stdio.h>
int main(void)
{
int *ptr = malloc(4*sizeof(int));
int index;
for (index = 0; index < 4; index++)
{
ptr[index]=index;
printf("%d\n", ptr[index]);
}
free(ptr);
return 0;
}
Это должно решить вашу проблему