Como a aritmética de ponteiro vazio está acontecendo no GCC
int main()
{
int a;
void *p;
p = &a;
printf("%ld\n",(long)p);
p = p+1;
printf("%ld\n",(long)p);
}
Neste programa,p+1
está apenas incrementando o valor de p por 1. Eu seivoid pointer arithmetic
não é possível emC
, assimGCC
está fazendo isso implicitamente. E se sim, então é isso comochar pointer
. Além disso, por quedereferencing
não é possível para o ponteiro vazio, se estiver implicitamente fazendo aritmética de ponteiro.