Mình vừa ăn củ hành. Nên có đoạn code vui cho bạn nào chưa biết
int *val = new int[1];
val[0]=3;
delete[] val;
if(val==nullptr) val = new int[1];
val[0]=5;
std::cout<<val[0];
Mình vừa ăn củ hành. Nên có đoạn code vui cho bạn nào chưa biết
int *val = new int[1];
val[0]=3;
delete[] val;
if(val==nullptr) val = new int[1];
val[0]=5;
std::cout<<val[0];
Cho chừa cái tật quên trỏ về null sau khi delete.
Có điều lạ là sao những ông thiết kế trình biên dịch lại không xóa nullptr hộ cái nhỉ. Quên cái là ngỏm @@.
Hi Văn Dương.
Cái đó bình thường delete chỉ là không quản lý nữa thôi. Bạn phải gán lại biến. Chưa kể khi khởi tạo mà không gán luôn nó cũng không phải là null nên nói chung là phải gán lại.
Thường thì sau khi delete sẽ gán nullptr. Trình biên dịch nó gán auto giúp có vẻ đỡ nhọc hơn bao nhiêu @@