Napisałem kilka funkcji do obsługi tablic dwuwymiarowych i nie jestem pewien czy są one poprawne:

char **NewTable(int sizeX, int sizeY)
{
	char **table;
	table = (char**)malloc(sizeX*sizeof(char*));
	for(int i=0;i<sizeX;i++)
	{
		table[i]=(char*)malloc(sizeY*sizeof(char));
	}

	return table;
}

void FillTable(int sizeX, int sizeY, char** table)
{
	for(int i=0;i<sizeX;i++)
	{
		scanf("%s",table[i]);
	}
}

void PrintSingle(int index, char** table)
{
	printf("%s\n",table[index]);
}

void DeleteTable(int sizeX, int sizeY, char** table)
{
	for(int i=0;i<sizeX;i++)
		free(table[i]);
	free(table);
}

Chciałem stworzyć tablicę do przechowywania łańcuchów znaków;

EDIT:
Dodałem jeszcze odczyt z pliku:

void fFillTable(FILE* stream,int sizeX,int intsizeY,char**table)
{
	for(int i=0;i<sizeX;i++)
	{
		fscanf(stream,"%s",table[i]);
	}
}

Jakieś opinie ?