Cómo está ocurriendo la aritmética de punteros en vacío en GCC
int main()
{
int a;
void *p;
p = &a;
printf("%ld\n",(long)p);
p = p+1;
printf("%ld\n",(long)p);
}
En este programa,p+1
solo está incrementando el valor de p por 1. Lo sévoid pointer arithmetic
no es posible enC
, asi queGCC
lo está haciendo implícitamente Y si es así, entonces lo está tomando comochar pointer
. Tambien por quedereferencing
no es posible para el puntero de vacío, si está haciendo aritmética de puntero implícitamente.