Malutki problemik w C

0

Mógł by mi ktoś rozjaśnić w jaki sposób dodać tablice 2 wymiarową do funkcji i skutecznie na niej operować? Najlepiej gdyby znalazła się jakaś dobra dusza i poprawiła ten mini kod :) Z góry serdeczne dziękuje wszystkim chętnym do pomocy ;)

#include <stdio.h>
#include <stdlib.h>

#define X_SIZE 3		//wysokosc
#define Y_SIZE 3		//szerokosc

void rysuj();
void gra();
void wypelnij(char *PoleGry[Y_SIZE]);  // Wypelnianie tablicy
void rysujtablice(char *PoleGry[Y_SIZE]);	// rysowanie tablicy

int main()
{
	char PoleGry[X_SIZE][Y_SIZE];
	wypelnij(*PoleGry[Y_SIZE]);
	return 0;
	system("PAUSE");
}
	void wypelnij(char *PoleGry[Y_SIZE])

{
		int i, j;
		for (i = 0; i < X_SIZE; i++)
		{
			for (j = 0; j < Y_SIZE; j++)
			{
				*PoleGry[j] =' ';
			}		
			*(PoleGry[j])++;
		}
}
void rysuj()
{
}
void gra()
{
}
void rysujtablice(char *PoleGry[Y_SIZE])
{	
} 
1
wypelnij(*PoleGry[Y_SIZE]) 

Jeśli chcesz przekazać tylko 4 element tablicy, to powinieneś użyć referencji

&PoleGry[Y_SIZE]

Zaś jeśli chcesz przekazać całą tablicę, to wystarczy:

 wypelnij(PoleGry)

Miej na uwadze, że gdy ją przekażesz do funkcji, to musisz ją traktować jako jednowymiarową, tj. przy założeniu, że tablica ma wymiary tablica[2][2], to by zapisać element do pola [2][1] będziesz musiał wpisać:

tablica[2] = ' ' 

Bo elementy w tablicy są numerowane od 0.
Przy założeniu, że chcesz ją przekazać całą to prototyp funkcji powinien wyglądać tak:

void wypelnij(char *PoleGry)
0

Myślę, że możesz zrobić to też w inny sposób. Mianowicie prototyp funkcji :

 
    void wypelnij( char **PoleGry );  

Natomiast tablice tworzysz w ten sposób :

 
    char **PoleGry;
    PoleGry = new char*[Y_SIZE];
    for(int i=0; i<Y_SIZE; i++) PoleGry[i] = new char[X_SIZE];

Aby użyć funkcji wystarczy:

    wypelnij( PoleGry );

Mam nadzieję, że mój sposób będzie ok;

1 użytkowników online, w tym zalogowanych: 0, gości: 1