Я все - же советую пользоватся уже готовыми функциями создания динамических массивов, а именно new, например, создаем многомерный массив для выведения таблицы, преимущество то, что вы можете использовать массивы любой формы!!! то есть пространственного строения, что есть очень удобно для списков с не идентичными данными в строках. Можно, например заменять такими массивами структуры. Но все - же структуры удобнее.
Например, сделаем динамическую матрицу mat[ n ][ q ], где n & q - размер матрицы, для этого :
объявляем
double **mat;
mat - new double*[ n ] - создаем массив указателей в свою очередь каждый из которых будет указывать на строку матрицы, поэотому mat - указатель на указатель.
for( int i = 0; i < n; i++ )
{
mat[ i ] = new double[ i ];
*(mat + i ) - переставляем указатель на следующий элемент
}
Для доступа к элементам пишем
1. *(*(mat + k ) + l ) = number;
или
2. *(mat+k)[l] = number;
или
3. *(m+n) = m[n];
Для доступа к элементу mat[k][l] и присвоения ему значения number;