La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1065 - ERROR: NULL POINTER ASIGNMENT
Autor:  Jorge
Hola, soy un estudiante de 2º de Ing.Informática, y desde 1º hay un problema que me tortura cuando programo en C. ¿Por qué razones se puede dar el error en ejecución de ´null pointer assigment´? Tengo entendido que se debe a no liberar memoria tras usar un puntero, pero cuando corrijo ese error, a veces el mensaje no se va. Me encantaría que alguien pudiera contestarme, porque me seria muy util.

  Respuesta:  Ygnacio Manzon Marin
no solopor las asignaciones erroneas que ya estancontestadas si no que tambien por que tu le das en los programas errores de asignacion
por ejemplo si asignas a una variable entera y luego la lees con flotante te sale ese error solo por que como dice elerror "null pointer assigment"
que es "no asignado el puntero" eso de puntero es el tipode variable que le das como este:
int var1, var2;
float var3;
.
.
.
var3=var1/var2;
/*en este caso no te asignara nada y te sacara automaticamente del programa */
si quieres que este bien pero el resultado este mal (en este caso)
utilizarias este tipodeformato dividirias los enteros y elresultado se lo asignarias a una variable flotante y es todo
pasa con cualquier tipo, tienes que ver como es el resultado y ese tipo le asignarias a la variable donde lo vas a almacenar

estodo
espero haberte ayudado;

  Respuesta:  Matias Surdi
bueno, otra posible causa de tu problema puede ser que usando la funcion printf(), estes escribiendolo asi:

printf( "hola");
en ves de:
Printf("hola"); notese el espacio...entre ( "
y no lo digo yo, esta en un libro..
espero que te sirva......

  Respuesta:  Fernando Ramos
Este error se produce cuando intentas asignar algún valor a un puntero (apuntador) nulo.
Lo mejor que puedes hacer para evitar este tipo de errores es verificar la validez de tus apuntadores antes de usarlos y luego reinicializarlos cuando los dejas de usar:
int *p = NULL;

..
if ( !p)
{
p = new int;
}
*p = 5; // Usar el apuntador
..

// liberar el apuntador
delete p;
p = NULL;