Передача указателя из функции в функцию двумерного массива и его вывод на экран - 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 ()