Esto significa que desea desreferenciar el puntero y asignar el valor como 5 en los puntos de puntero de ubicación de memoria.
Es legal solo si el puntero apunta a alguna ubicación de memoria y, por lo tanto, desreferenciarlo para leer el valor existente en la ubicación de memoria o cambiar el valor en la ubicación de memoria está completamente bien. Sin embargo, si el puntero no apunta a ninguna ubicación de memoria, pero también es un puntero incorrecto / puntero no inicializado / puntero nulo, entonces su declaración probablemente se convertirá en segfault.
Ejemplos:
- Después de completar varios cursos de pregrado en matemáticas, ¿qué debo estudiar a continuación?
- ¿Todas las integrales pueden ser calculadas por una computadora? Del mismo modo, ¿hay integrales en este momento que los matemáticos no puedan resolver?
- ¿Cuáles son todas las aplicaciones conocidas de las técnicas de optimización de colonias de hormigas?
- Cómo interpretar 'lift' y 'odds ratio' en las reglas de asociación
- Cómo tener éxito en informática si no soy demasiado bueno en matemáticas y nunca he hecho física
int a = 10;
int * ptr; // ptr todavía no es un puntero válido
ptr = & a; // ptr ahora es un puntero válido.
printf (“% d% d”, * ptr, a); // imprimirá 10 y 10;
* ptr = 5;
printf (“% d% d”, * ptr, a); // imprimirá 5 y 5
int * ptr1;
* ptr1 = 5; // no es una declaración válida y es probable que vea segfault.
ACTUALIZACIÓN: Una cosa que olvidé mencionar es que desreferenciar el puntero y cambiar el valor en la ubicación de la memoria solo se puede hacer si el puntero no es un puntero a una constante.
Entonces, si pa puntero apunta a un valor constante, no puede hacer * p = 5 y cambiar el valor al que apunta p. SOLO es posible si p es un puntero a datos no constantes.