Вы не выделили никакого хранилища, только указатель. Указателю нужно на что-то указать. Вы должны сделать это так:
#include <stdio.h>
int main(void)
{
int i;
printf("Enter a no \n");
scanf("%d", &i);
printf("i=%d", i);
return 0;
}
Я также позволил сделать объявление main()
действительным и вернуть значение.
Если вы хотите узнать об указателях, попробуйте так:
#include <stdio.h>
int main(void)
{
int i;
int* ip;
ip = &i;
printf("Enter a no \n");
scanf("%d", ip);
printf("*ip=%d", *ip);
return 0;
}
Или, если вы хотите выделить кучу, а не стек:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int* ip;
ip = malloc(sizeof(int));
printf("Enter a no \n");
scanf("%d", ip);
printf("*ip=%d", *ip);
free(ip);
return 0;
}