Gravando no ponteiro fora dos limites após malloc () não causando erro
quando tento o código abaixo, ele funciona bem. Estou esquecendo de algo?
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;
}
Eu tentei com malloc (0 * sizeof (int)) ou qualquer coisa, mas funciona muito bem. O programa falha apenas quando eu não uso o malloc. Portanto, mesmo se eu alocar 0 de memória para a matriz p, ele ainda armazenará os valores corretamente. Então, por que estou me incomodando com malloc então?