Ok - rozwiązaniem problemu było użycie funkcji .reset() aby dać wskaźnik na nową zmienną i .get() aby uzyskać adres zmiennej na jaką wskazuje.
A jak jest z statycznymi tablicami i ich przekazywaniem przez inteligentne wskaźniki ?
Kod nie działa,nie kompiluje się.Zaznaczam że nie zależy mi na dynamicznej tablicy a statycznej.
#include <iostream>
#include <memory>
void fillArray(std::unique_ptr<int>&tab,const size_t arraySize)
{
for(size_t i=0;i<arraySize;i++)
{
tab[i] =(2*i)+2;
}
}
void showArray(const std::unique_ptr<int>&tab,const size_t arraySize)
{
for(size_t i=0;i<arraySize;i++)
{
std::cout<<"tab["<<i<<"] = "<<tab[i]<<'\n';
}
}
int main()
{
const size_t ARRAY_SIZE{10};
int evenNumbers[ARRAY_SIZE];
std::unique_ptr<int>tab(new int(evenNumbers));
fillArray(tab,ARRAY_SIZE);
showArray(tab,ARRAY_SIZE);
return 0;
}