#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
using namespace std;
void SetDataReferences(int*const* pVector, const size_t length) {
transform(pVector, next(pVector, length), ostream_iterator<int>(cout, "\n"), [](const auto i) { return *i; });
}
void SetDataReferences(int** pVector, const size_t length) {
for(const auto finish = next(pVector, length); pVector != finish; ++pVector) {
delete *pVector;
*pVector = new int{ 0 };
}
}
int main() {
vector<void*> foo = { new int{ 13 }, new int{ 42 } };
SetDataReferences(reinterpret_cast<int**>(foo.data()), foo.size());
SetDataReferences(reinterpret_cast<int*const*>(foo.data()), foo.size());
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDx2ZWN0b3I+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBTZXREYXRhUmVmZXJlbmNlcyhpbnQqY29uc3QqIHBWZWN0b3IsIGNvbnN0IHNpemVfdCBsZW5ndGgpIHsKICB0cmFuc2Zvcm0ocFZlY3RvciwgbmV4dChwVmVjdG9yLCBsZW5ndGgpLCBvc3RyZWFtX2l0ZXJhdG9yPGludD4oY291dCwgIlxuIiksIFtdKGNvbnN0IGF1dG8gaSkgeyByZXR1cm4gKmk7IH0pOwp9Cgp2b2lkIFNldERhdGFSZWZlcmVuY2VzKGludCoqIHBWZWN0b3IsIGNvbnN0IHNpemVfdCBsZW5ndGgpIHsKICBmb3IoY29uc3QgYXV0byBmaW5pc2ggPSBuZXh0KHBWZWN0b3IsIGxlbmd0aCk7IHBWZWN0b3IgIT0gZmluaXNoOyArK3BWZWN0b3IpIHsKICAgIGRlbGV0ZSAqcFZlY3RvcjsKICAgICpwVmVjdG9yID0gbmV3IGludHsgMCB9OwogIH0KfQoKaW50IG1haW4oKSB7CiAgdmVjdG9yPHZvaWQqPiBmb28gPSB7IG5ldyBpbnR7IDEzIH0sIG5ldyBpbnR7IDQyIH0gfTsKCiAgU2V0RGF0YVJlZmVyZW5jZXMocmVpbnRlcnByZXRfY2FzdDxpbnQqKj4oZm9vLmRhdGEoKSksIGZvby5zaXplKCkpOwogIFNldERhdGFSZWZlcmVuY2VzKHJlaW50ZXJwcmV0X2Nhc3Q8aW50KmNvbnN0Kj4oZm9vLmRhdGEoKSksIGZvby5zaXplKCkpOwp9