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

Tại sao C ++ không hỗ trợ các hàm trả về mảng


Chúng ta hãy xem xét chương trình sau đây,

#include <iostream>
using namespace std;
int* Array() {
   int a[100];
   a[0] = 7;
   a[1] = 6;
   a[2] = 4;
   a[3] = 3;
   return a;
}
int main() {
   int* p = Array();
   cout << p[0] << " " << p[1]<<" "<<p[2]<<" "<<p[3];
   return 0;
}

Trong chương trình này, chúng tôi nhận được cảnh báo là,

Đầu ra

In function 'int* Array()':
warning: address of local variable 'a' returned [-Wreturn-local-addr]
int a[100];

Chúng tôi trả về địa chỉ của biến cục bộ nhưng điều này là không thể vì biến cục bộ có thể không tồn tại trong bộ nhớ sau khi kết thúc lệnh gọi hàm. Vì vậy, C ++ không hỗ trợ các mảng trả về hàm.