Предполагается, что эта программа запросит у пользователя два значения, а затем сгенерирует и распечатает таблицу, используя эти два значения в качестве числа строк и столбцов соответственно. Каждая ячейка таблицы имеет два значения, обозначенных как cellX и cellY. Значения x и y каждой ячейки таблицы равны 1 и 2 соответственно.
Короче говоря, это динамический c 2D массив структур. Проблема в том, что программа, похоже, пропускает последнюю для l oop, поэтому она не печатает содержимое массива структур. Ошибок не было.
#include <stdio.h>
#include <stdlib.h>
typedef struct // one cell of a table holding two int values
{
int *cellX;
int *cellY;
} Table;
int main()
{
char dump;
int row, col, y, x;
printf("Enter number of rows and columns (r,c): ");
scanf("%d%c%d", &row, &dump, &col);
Table **grid;
grid = (Table **)malloc(row * col * sizeof(Table));
for (y = 0; y < row; y++) // assigns values to the table
{
for (x = 0; x < col; x++)
{
*grid[x][y].cellX = 1; // all x-values will be 1
*grid[x][y].cellY = 2; // all y-values will be 2
}
}
for (y = 0; y < row; y++) // displays the table
{
for (x = 0; x < col; x++)
{
printf("%d, %d\t", *grid[x][y].cellX, *grid[x][y].cellY);
}
}
free(grid);
return 0;
}