关于内存错误
有时函数返回一个指针,使用指针会导致内存错误,虽然在使用之前检测其是否为NULL。原因在于,函数返回的指针,是在函数内部定义,然后返回的。如果在定义时不初始化为NULL,比如以下代码:void* func(){void *p;p = ......;return p;}因为没有初始化,所以,指针p是有值的,所以,检测时就不是NULL,但是它指向的可能是无权限访问的地址,或者,是可访问的求知地址,两种都会造成错误。而后者在某些情况下可能会更加严重,因为这个错误可以被可访问的内存地址掩盖。[@more@]
原创
网络安全
311
2009-04-19 23:44