#include <iostream>
#include <vector>
using namespace std;
void foo(double** data, size_t i, size_t j)
{
for (size_t ii = 0; ii < i; ++ii)
for (size_t jj = 0; jj < j; ++jj)
cout << data[ii][jj] << endl;
}
int main(void) {
vector<vector<double>> data = {{0.0f, 1.0f}, {2.0f, 3.0f}};
const size_t rows = data.size();
const size_t cols = data[0].size();
double** arrayData = new double*[rows];
for (size_t i = 0; i < rows; ++i)
arrayData[i] = &data[i][0];
foo(arrayData, rows, cols);
delete [] arrayData;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgZm9vKGRvdWJsZSoqIGRhdGEsIHNpemVfdCBpLCBzaXplX3QgaikKewogICBmb3IgKHNpemVfdCBpaSA9IDA7IGlpIDwgaTsgKytpaSkKICAgICBmb3IgKHNpemVfdCBqaiA9IDA7IGpqIDwgajsgKytqaikKICAgICAgIGNvdXQgPDwgZGF0YVtpaV1bampdIDw8IGVuZGw7Cn0KCmludCBtYWluKHZvaWQpIHsKCXZlY3Rvcjx2ZWN0b3I8ZG91YmxlPj4gZGF0YSA9IHt7MC4wZiwgMS4wZn0sIHsyLjBmLCAzLjBmfX07CgkKCWNvbnN0IHNpemVfdCByb3dzID0gZGF0YS5zaXplKCk7Cgljb25zdCBzaXplX3QgY29scyA9IGRhdGFbMF0uc2l6ZSgpOwoJCglkb3VibGUqKiBhcnJheURhdGEgPSBuZXcgZG91YmxlKltyb3dzXTsKCQoJZm9yIChzaXplX3QgaSA9IDA7IGkgPCByb3dzOyArK2kpCgkgIGFycmF5RGF0YVtpXSA9ICZkYXRhW2ldWzBdOwoKICAgIGZvbyhhcnJheURhdGEsIHJvd3MsIGNvbHMpOwoKICAgIGRlbGV0ZSBbXSBhcnJheURhdGE7CiAgICAKCXJldHVybiAwOwp9