#include <stdio.h>
#include <stdlib.h>
int main()
{
char *p[3];
const size_t N = 10;
size_t row, col; // Ідентифікатори для рядів та стовпців
/* Виділяємо місце у "КУПІ" для 3-х масивів
та ініціалізуємо масив із 3-х вказівників, котрий
розташований у "СТЕКУ", адресами ділянок пам'яті в "КУПІ".
Забиваємо це все діло нулями... */
row = 0;
while (row < 3)
p[row] = (char *)calloc(sizeof(char), N), ++row;
srand(1); /* Для автоматичної ініціалізації генератор випадкових чисел
можна srand передати параметр час... */
/* Повторна ініціалізація 1-го та 2-го рядка матриці пропускаючи перший елемент. */
for (row = 0; row < 2; ++row)
{
printf("%3d ", *p[row]);
for (col = 1; col < N; ++col)
// Генеруємо числа у діапазоні від 0 до 6 та виводимо на екран.
*(p[row] + col) = rand() % 7, printf("%3d ", p[row][col]);
printf("\n");
}
// Тут у нас дії над 3-м рядком.
col = 0;
while (col < N)
*(p[2] + col) = *(*p + col) + *(p[1] + col),
printf("%3o ", p[2][col]),
++col;
// Ну і звичайно звільняємо пам'ять... ОБОВ'ЯЗКОВО free(PTR)
row = 0;
while (row < 3)
free(p[row]), ++row;
return 0;
}
Не зовсім зрозуміло дії над 3-м рядком... Покажіть приклад.
Для наглядності у третьому рядку вивів просто суму 1 та 2 рядка у вісімковому форматі