Передача двумерного массива в функцию, как указатель - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #define SIZE_OF_AREA 10
  3. #include <stdio.h>
  4. enum type_Of_Cells {EMPTY = 0, SHIP, NEIGHBOR, BEATEN};
  5. void print_Area(const enum type_Of_Cells Area[SIZE_OF_AREA][SIZE_OF_AREA], const size_t Size_Of_Area);
  6. int main()
  7. {
  8. enum type_Of_Cells area_For_Player1[SIZE_OF_AREA][SIZE_OF_AREA] = { EMPTY };
  9. print_Area(area_For_Player1, SIZE_OF_AREA);
  10. return 0;
  11. }
  12. void print_Area(const enum type_Of_Cells Area[SIZE_OF_AREA][SIZE_OF_AREA], const size_t Size_Of_Area)
  13. {
  14. //Why is it wrong? void print_Area(const enum type_Of_Cells **Area, const size_t Size_Of_Area)
  15. printf("%s", " 1 2 3 4 5 6 7 8 9 10\n");
  16. for (size_t i = 0, s = 'A'; i < Size_Of_Area; i++, s++) {
  17. printf("%c ", s);
  18. for (size_t j = 0; j < Size_Of_Area; j++) {
  19. if (EMPTY == Area[i][j]) {
  20. printf("%s", " ");
  21. }
  22. if (SHIP == Area[i][j]) {
  23. printf("%s", "*");
  24. }
  25. if (NEIGHBOR == Area[i][j]) {
  26. printf("%s", ".");
  27. }
  28. }
  29. puts("");
  30. }
  31. }
Понял, что опять что-то не понял с указателями. Всем доброго времени суток, нужна помощь. Вроде как понятно, что имя массива - это указатель на первый элемент массива. Однако, при передаче двумерного массива, таким образом
Листинг программы
  1. void print_Area(const enum type_Of_Cells **Area, const size_t Size_Of_Area)
в функцию, вместо данных по этому адресу приходит пустота, хотя это тот же адрес, что и в вызывающей функции. Если кто-то понимает, что не так, поясните, пожалуйста.

Решение задачи: «Передача двумерного массива в функцию, как указатель»

textual
Листинг программы
  1. enum type_Of_Cells area_For_Player1[SIZE_OF_AREA][SIZE_OF_AREA]

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы