30/09/2018, 18:06
Tại sao delete một con trỏ nhưng giá trị của nó vẫn khác NULL?
Đây là 1 phần chương trình của em:
class student{
........
}
void func(student *a){
delete a;
a = NULL;
}
int main(){
student *stu = new student();
func(stu);
......
}
Sau khi họi hàm func
thì stu
vẫn khác NULL
. Tại sao vậy mọi người?
Bài liên quan
student *&a nó mới cập nhật lại bạn.
Trong code của bạn,
a
vàstu
là 2 con trỏ trỏ đến cùng một đối tượng. Mình tạm gọi làO
.Khi bạn gán
a = NULL
, nó không làm chostu = NULL
.Nếu bạn muốn gán
NULL
chostu
thông quaa
, bạn phải khai báoa
là con trỏ trỏ đến con trỏTham khảo: