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;.. // liberar el apuntador |