#include /* needed for std::size_t */ #include /* needed for printf */ struct Matrix { std::size_t m; /* number of rows */ std::size_t n; /* number of columns */ std::size_t incRow; std::size_t incCol; double* data; void init() { for (std::size_t i = 0; i < m; ++i) { for (std::size_t j = 0; j < n; ++j) { data[i*incRow + j*incCol] = j * n + i + 1; } } } void print() { for (std::size_t i = 0; i < m; ++i) { std::printf(" "); for (std::size_t j = 0; j < n; ++j) { std::printf(" %4.1lf", data[i*incRow + j*incCol]); } std::printf("\n"); } } }; int main() { Matrix A; A.m = 7; A.n = 8; A.data = new double[A.m * A.n]; A.incRow = 1; A.incCol = 7; A.init(); std::printf("A =\n"); A.print(); }