Nếu khi biến trỏ không cần dùng đến nữa, chúng ta có thể xóa bỏ các ô nhớ của nó để giải phóng bộ nhớ động. Quá trình này được thực thi bởi toán tử delete.
delete num; delete[] nums; |
Toán tử delete chỉ có tác dụng với con trỏ được khởi tạo bởi toán tử new hoặc con trỏ null.
Chương trình | Kết quả |
#include using namespace std; int main() { double *ptr[ 5]; for ( int i = 0; i < 5; i++ ) { ptr[ i ] = new (nothrow) double[ 50000000 ]; if (ptr[i]!=0) cout << ”Allocation is ok”; else cout<<”Allocation fail”; } delete[] ptr; return 0; } | Allocation is ok Allocation is ok Allocation is ok Allocation is ok Allocation fail |
Bạn lưu ý, trong ANSI-C, hàm malloc, calloc, realloc và free được dùng thay cho new và delete và hiển nhiên chúng cũng hoạt động trên C++. Chúng ta không thảo luận chi tiết về hàm này, vì theo xu hướng của lập trình C++ hiện đại, người ta sử dụng hai toán tử mà ta thảo luận ở trên.
No comments:
Post a Comment