Передача указателя из функции в функцию двумерного массива и его вывод на экран - C (СИ)
Формулировка задачи:
Я, пишу морской бой для академии, в написании, нужно использовать указатели. Я столкнулся с проблемой, когда нужно передать указатель функции, на двумерный статический массив, в которой производится вывод массива на консоль. Печать происходит, но корректно только первые три строки:
Я, в main() создаю указатель, на адрес массива map возвращаемого функцией map(), в которой просто двумерный массив map инициализируется схемой поля боя, далее из main() адрес массива map, передается функции show() которая и выводит массив map на экран:
Но, если не передавать адрес массива map в main(), а передать его из функции map() сразу в show()
печатается так, как надо:
p.s.
извиняюсь за некорректное название темы.
http://www.imageup.ru/img260/1072072/print.gif
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <time.h>
- #define s 13
- #define c 28
- void show(char (*pmap)[c])
- {
- int i,j;
- for(i=0; i<s; ++i)
- {
- for(j=0; j<c; ++j)
- {
- printf("%c",pmap[i][j]);
- }
- printf("\n");
- }
- }
- int map ()
- {
- char map[s][c]=
- {
- " 0123456789 0123456789 ",
- " ---------- ---------- ",
- "0| | 0| |",
- "1| | 1| |",
- "2| | 2| |",
- "3| | 3| |",
- "4| | 4| |",
- "5| | 5| |",
- "6| | 6| |",
- "7| | 7| |",
- "8| | 8| |",
- "9| | 9| |",
- " ---------- ---------- ",
- };
- return map;
- }
- int main()
- {
- char*pmap=map();
- show(pmap);
- return 0;
- }
http://www.imageup.ru/img260/1072080/print2.gif
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <time.h>
- #define s 13
- #define c 28
- void show(char (*pmap)[c])
- {
- int i,j;
- for(i=0; i<s; ++i)
- {
- for(j=0; j<c; ++j)
- {
- printf("%c",pmap[i][j]);
- }
- printf("\n");
- }
- }
- int map ()
- {
- char map[s][c]=
- {
- " 0123456789 0123456789 ",
- " ---------- ---------- ",
- "0| | 0| |",
- "1| | 1| |",
- "2| | 2| |",
- "3| | 3| |",
- "4| | 4| |",
- "5| | 5| |",
- "6| | 6| |",
- "7| | 7| |",
- "8| | 8| |",
- "9| | 9| |",
- " ---------- ---------- ",
- };
- char*pmap=map;
- show(pmap);//передаем pmap в show() минуя main()
- }
- int main()
- {
- map();
- return 0;
- }
Решение задачи: «Передача указателя из функции в функцию двумерного массива и его вывод на экран»
textual
Листинг программы
- int map ()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д