Mình đang gặp một vấn đề như sau:
Mình tạo một mảng động gồm n phần tử và gán giá trị cho các phần tử này
sau đó mình sử dụng toán tử delete để thu hồi toàn bộ vùng nhớ đã cấp phát
theo lỳ thuyết thì giá trị của các con trỏ trong mảng sẽ là không xác định
nhưng khi mình code ra thì các giá trị này không hề thay đổi
nghĩa là toán tử delete thực hiện vô ích, không có tác dụng gì cả.
#include < iostream.h >
int main() {
int * p, n;
cin >> n;
p = new int[n];
for (int i = 0; i < n; i++)
p[i] = i;
for (int i = 0; i < n; i++)
cout << p[i] << " ";
cout << '\n';
delete[] p;
for (int i = 0; i < n; i++)
cout << p[i] << " ";
}
mình gõ vào số 5 và nó hiển thị ra như sau:
5
0 1 2 3 4
0 1 2 3 4
nhờ mọi người tìm lỗi sai giúp mình