Stack and heap trong c++

Chào mọi người, mọi người cho Em hỏi trong stack và heap thì khi nào 2 thằng đó được giai phóng, Theo như mình biết thì stack nó được giair phóng khi có lệnh return còn thằng heap thì sao ? Ai rõ chỉ cho mình với.

Bạn ơi, mình không biết khi nào heap giải phóng. Nhưng theo mình biết thì biến thuộc stack sẽ huỷ khi bạn ra khỏi khối lệnh mà bạn đã khai báo nó (khối lệnh là nhiều lệnh được viết trong dấu { }).
Bạn cứ coi bài này sẽ hiểu: https://youtu.be/QDbkuH57gHo?list=PLyiioioEJSxHVTaeL-ELYy6Io-I8diIVZ

4 Likes

Bạn thưr đọc link này xem sao. :3 http://www.learncpp.com/cpp-tutorial/79-the-stack-and-the-heap/

Bạn nhập chương trình này vào IDE của bạn nha:

#include <iostream>
using namespace std;
void main()
{
{
int i = 1;
cout << “i trong = " << i << endl;
}
cout <<” i ngoai = " << i << endl;
system(“pause”);
}

Đây là 1 đoạn code đơn giản không hề dùng return, và nó sẽ báo lỗi là chưa khai báo biến i tại dòng code số 9. Chứng tỏ biến i đã bị huỷ khi đi ra khỏi khối lệnh đã khai báo nó.

2 Likes

cảm ơn Bạn nha. có thêm kiến thức bỏ túi :blush:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?