tui mới học c++ được một khoảng thời gian nên cũng chưa rõ lắm, mọi người cho tui hỏi về câu lệnh dưới đây
#include <iostream>
using namespace std;
int main()
{
{int *p;
cout << p<< endl;} // lệnh cout 1
cout << p<< endl; // lệnh cout 2
system("pause");
return 0;
}
tui khai báo một biến con trỏ và đặt nó trong phần {} của ‘lệnh cout 1’, theo tui biết thì khi khai báo một biến con trỏ thì nó sẽ khai báo trong vùng nhớ heap nên CPU không tự xóa được, vậy có nghĩa là khi ra khỏi dấu {} của ‘lệnh cout 1’ con trỏ p vẫn còn tồn tại, vậy sao khi tui in ra địa chỉ của nó tại ‘lệnh cout 2’ thì chương trình lại báo không hiểu p là gì, mọi người có thể giải thích giùm tui không