Я прочитал Как вернуть локальный массив из функции C / C ++? тема и запутался в последнем блоке кода:
#include <iostream>
using namespace std;
struct arrWrap {
int arr[100];
~arrWrap()
{
}
};
struct arrWrap fun()
{
struct arrWrap x;
x.arr[0] = 10;
x.arr[1] = 20;
return x;
}
int main()
{
struct arrWrap x = fun();
cout << x.arr[0] << " " << x.arr[1];
return 0;
}
по моей идее, это будетбыть в порядке, только если конструктор по умолчанию не уничтожает член arr после завершения функции и возврата. Это правда?если это правда, то по-моему это утечка памяти, не так ли?Может ли кто-нибудь проанализировать это для меня во всех измерениях?