когда я пробую приведенный ниже код, он работает нормально. Я что-то упустил?
main()
{
int *p;
p=malloc(sizeof(int));
printf("size of p=%d\n",sizeof(p));
p[500]=999999;
printf("p[0]=%d",p[500]);
return 0;
}
Я пробовал использовать malloc (0 * sizeof (int)) или что-то еще, но все работает нормально. Программа вылетает только тогда, когда я вообще не использую malloc. Таким образом, даже если я выделю 0 памяти для массива p, он все равно будет правильно хранить значения. Так почему же тогда я вообще возился с malloc?