30/09/2018, 20:34

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.

Nguyễn Tấn Khoa viết 22:41 ngày 30/09/2018

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

Lê Đại Tú viết 22:35 ngày 30/09/2018

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

Nguyễn Tấn Khoa viết 22:35 ngày 30/09/2018

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ó.

Lê Đại Tú viết 22:34 ngày 30/09/2018

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

Bài liên quan
0