30/09/2018, 19:55
Lỗi khi xóa con trỏ
Mình có 1 đoạn code ngắn thế này !
#include<iostream>
using namespace std;
int main()
{
int a[4] = { 1, 2, 3, 4 };
int *p = a;
int *p2 = new int;
delete p;
delete a;
delete p2;
}
Biên dịch xảy ra lỗi !!Nhờ các bạn fix và giải thích với !!!
Bài liên quan
a, p và p2 thì chỉ
delete
được p2 thôi do nằm trong vùng nhớ heap sau khi cấp phát động bằng toán tửnew
. còn a và p nằm trong stack. bạn xem kỹ lại phần cấp phát động nhé!a với p ko delete được nhé
p thì mình ko chắc nhưng a là hằng con trỏ rồi ko làm gì đc nó đâu.
cám ơn 2 bạn nha mình hiểu rồi !!!