Computer >> Máy Tính >  >> Lập trình >> lập trình C

Rò rỉ bộ nhớ trong C / C ++ là gì?

Rò rỉ bộ nhớ xảy ra khi một phần bộ nhớ đã được lập trình viên cấp phát trước đó. Sau đó, nó không được phân bổ đúng bởi lập trình viên. Bộ nhớ đó không còn được sử dụng bởi chương trình. Vì vậy, nơi đó được dành cho không có lý do. Đó là lý do tại sao điều này được gọi là rò rỉ bộ nhớ.

Đối với rò rỉ bộ nhớ, một số khối bộ nhớ có thể đã bị lãng phí. Nếu hệ thống có đủ bộ nhớ, trong trường hợp đó, điều này cũng có thể làm chậm hiệu suất.

Ví dụ

void my_func() {
   int *data = new int;
   *data = 50;
}

Vấn đề ở đây là * con trỏ dữ liệu không bao giờ bị xóa, vì vậy bộ nhớ sẽ bị lãng phí.

Ví dụ

#include <stdio.h>
main(void) {
   auto int my_fun();
   my_fun();
   printf("Main Function\n");
   int my_fun() {
      printf("my_fun function\n");
   }
   printf("Done");
}

Đầu ra

my_fun function
Main Function
Done