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 !!!

viết 21:59 ngày 30/09/2018

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é!

chazo1994 viết 22:09 ngày 30/09/2018

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.

Minh Lê viết 22:00 ngày 30/09/2018

cám ơn 2 bạn nha mình hiểu rồi !!!

Bài liên quan
0