Cześć.
Zdecydowałem zmienić tablicę statyczną na dynamiczną w moim programie. Użytkownik ma wprowadzać w, które przyda mi się we wszystkich modułach.
Chciałem przekazywać to w poprzez parametr funkcji, tablica zależy od w, bo to rozmiar. Tak może być, że parametr zależy od parametru? A jak nie to jak to inaczej zrobić? Przed zmianami wszystko było w porządku a teraz wywala masę błędów.
main.cpp
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <windows.h>
#include "poruszanie.h"
#include "wyswietlanie.h"
using namespace std;
int main()
{
int wspolrzedna1, wspolrzedna2, wsp1pop, wsp2pop;
char black, white;
char **tab ;
int w;
cout << "ile wierszy i kolumn ? " << endl;
cin >> w;
tab = new char *[w];
for (int i=0; i<w; i++)
tab[i] = new char [w];
black = '1';
white = '0';
for (int i=0;i<w;i++)
for (int j=0;j<w;j++)
tab [i][j] = white;
wspolrzedna1 = w/2;
wspolrzedna2 = w/2;
wsp1pop = wspolrzedna1;
wsp2pop = wspolrzedna2;
tab[wspolrzedna1][wspolrzedna2] = black;
wspolrzedna2 = wspolrzedna2-1;
wyswietlanie (w, tab);
while (wspolrzedna1>=0 && wspolrzedna2>=0 && wspolrzedna1<w && wspolrzedna2<w)
{ poruszanie (w, wspolrzedna1,wspolrzedna2, wsp1pop, wsp2pop, tab, white, black);
Sleep (500);
system( "cls" );
wyswietlanie (w, tab);
}
for (int i=0; i<w; i++)
delete [ ] tab[i];
delete [ ] tab;
return 0;
}
wyswietlanie.h
#ifndef WYSWIETLANIE_H
#define WYSWIETLANIE_H
const int W=20;
void wyswietlanie (int &w, char tab[][w]);
#endif
wyswietlanie.cpp
#include "wyswietlanie.h"
#include <iostream>
#include <iomanip>
#include <cstdlib>
using namespace std;
void wyswietlanie (int &w, char tab[][w])
{
for (int i=0;i<w;i++)
{for (int j=0;j<w;j++)
cout << setw(2) << tab [i][j];
cout << endl;}
}
błędy
wyswietlanie.h:6: błąd: use of parameter outside function body before ']' token
void wyswietlanie (int &w, char tab[][w]);
wyswietlanie.cpp:9: błąd: use of parameter outside function body before ']' token
void wyswietlanie (int &w, char tab[][w])
^
wyswietlanie.cpp:11: błąd: 'w' was not declared in this scope
for (int i=0;i<w;i++)
wyswietlanie.cpp:13: błąd: 'tab' was not declared in this scope
cout << setw(2) << tab [i][j];
i w mainie: no matching function for call to 'wyswietlanie'
^ ^
^
Przepraszam za niesubordynację ;)