I'm in the process of recreating minesweeper in C. This is what I have so far, it's not complete i'm still testing it out. I am haveing a big problem with the floodfill which is ment to turn all the corrosponding cells that should be revealed to 1. Currently I have it displaying the bombs map then the hidden cells so I can see how it's working till I finish the program. Can you help me out with the errors that I am getting.

Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

struct ms{
	int bombs;
	int uncovered;
	int printvalue;
} field[9][9];

int floodfill(struct ms field[][], int, int);


int main (void)
{
int b,i,o;

	srand(time(NULL));
	for(b=0;b<10;b++){
		i=rand()%9;
		o=rand()%9;
		if (field[i][o].bombs == 42)b--;
		field[i][o].bombs = 42;
			}

	for (i=0;i<9;i++){
		for(o=0;o<9;o++){
			if (field[i][o].bombs != 42){
				field[i][o].bombs = 48;}}
	}

	/*outer bonds, courners, 00, 80, 08, 88*/
	if (field[0][0].bombs == 42){if (field[1][0].bombs != 42)field[1][0].bombs++; if (field[1][1].bombs != 42)field[1][1].bombs++; if (field[0][1].bombs != 42)field[0][1].bombs++;}
	if (field[0][8].bombs == 42){if (field[0][7].bombs != 42)field[0][7].bombs++; if (field[1][7].bombs != 42)field[1][7].bombs++; if (field[1][8].bombs != 42)field[1][8].bombs++;}
	if (field[8][0].bombs == 42){if (field[7][0].bombs != 42)field[7][0].bombs++; if (field[7][1].bombs != 42)field[7][1].bombs++; if (field[8][1].bombs != 42)field[8][1].bombs++;}
	if (field[8][8].bombs == 42){if (field[7][7].bombs != 42)field[7][7].bombs++; if (field[7][8].bombs != 42)field[7][8].bombs++; if (field[8][7].bombs != 42)field[8][7].bombs++;}
	
	/*Sides left*/
	for(i=1;i<8;i++){
			if (field[i][0].bombs == 42){
				if (field[i-1][0].bombs != 42)field[i-1][0].bombs++; 
				if (field[i+1][0].bombs != 42)field[i+1][0].bombs++; 
				if (field[i][1].bombs != 42)field[i][1].bombs++;
				if (field[i+1][1].bombs != 42)field[i+1][1].bombs++; 
				if (field[i-1][1].bombs != 42)field[i-1][1].bombs++;
			}
	}
	/*Side Right*/
	for(i=1;i<8;i++){
		if (field[i][8].bombs == 42){
			if (field[i-1][8].bombs != 42)field[i-1][8].bombs++; 
			if (field[i+1][8].bombs != 42)field[i+1][8].bombs++; 
			if (field[i][7].bombs != 42)field[i][7].bombs++;
			if (field[i+1][7].bombs != 42)field[i+1][7].bombs++; 
			if (field[i-1][7].bombs != 42)field[i-1][7].bombs++;
		}
	}
	/*Top wall*/
	for(o=1;o<8;o++){
		if (field[0][o].bombs == 42){
			if (field[0][o-1].bombs != 42)field[0][o-1].bombs++; 
			if (field[0][o+1].bombs != 42)field[0][o+1].bombs++; 
			if (field[1][o].bombs != 42)field[1][o].bombs++;
			if (field[1][o-1].bombs != 42)field[1][o-1].bombs++; 
			if (field[1][o+1].bombs != 42)field[1][o+1].bombs++;
		}
	}
	/*Bottom wall*/
	for(o=1;o<8;o++){
		if (field[8][o].bombs == 42){
			if (field[8][o-1].bombs != 42)field[8][o-1].bombs++; 
			if (field[8][o+1].bombs != 42)field[8][o+1].bombs++; 
			if (field[7][o].bombs != 42)field[7][o].bombs++;
			if (field[7][o-1].bombs != 42)field[7][o-1].bombs++; 
			if (field[7][o+1].bombs != 42)field[7][o+1].bombs++;
		}
	}
	/*for i = 1-8 and o = 1-8, inner bonds*/
	for (i=1;i<8;i++){
		for (o=1;o<8;o++){
			if (field[i][o].bombs == 42){
					if (field[i-1][o].bombs != 42)field[i-1][o].bombs++;
					if (field[i+1][o].bombs != 42)field[i+1][o].bombs++;
					if (field[i-1][o+1].bombs != 42)field[i-1][o+1].bombs++;
					if (field[i][o+1].bombs != 42)field[i][o+1].bombs++;
					if (field[i+1][o+1].bombs != 42)field[i+1][o+1].bombs++;
					if (field[i-1][o-1].bombs != 42)field[i-1][o-1].bombs++;
					if (field[i][o-1].bombs != 42)field[i][o-1].bombs++;
					if (field[i+1][o-1].bombs != 42)field[i+1][o-1].bombs++;
				}
			}
		}

printf("\n\n\t*******************\n\t*   MineSweeper   *\n\t*******************\n"); 
printf("\n\t  0 1 2 3 4 5 6 7 8\n\t  -----------------\n");
	for(i=0;i<9;i++)printf("\t%d|%c %c %c %c %c %c %c %c %c|\n", i, field[i][0].bombs,field[i][1].bombs,field[i][2].bombs,field[i][3].bombs,field[i][4].bombs,field[i][5].bombs,field[i][6].bombs,field[i][7].bombs,field[i][8].bombs); 
printf("\t  -----------------");
printf("\n\nEnter Coordinates Values: ");
scanf("%d %d", &i, &o);
field[i][o].uncovered = 1;

floodfill(field, i, o);

if (field[i][o].bombs == 42){printf("\nBOOM!!! Game Over, you hit a bomb.\n"); return 0;}
	


/*compaire*/
for(i=0;i<9;i++){
	for(o=0;o<9;o++){
		if (field[i][o].uncovered == 1)field[i][o].printvalue = field[i][o].bombs;
		if(field[i][o].uncovered== 0)field[i][o].printvalue = 45;
		}
	}

printf("\n\t  0 1 2 3 4 5 6 7 8\n\t  -----------------\n");
	for(i=0;i<9;i++)printf("\t%d|%c %c %c %c %c %c %c %c %c|\n", i, field[i][0].printvalue,field[i][1].printvalue,field[i][2].printvalue,field[i][3].printvalue,field[i][4].printvalue,field[i][5].printvalue,field[i][6].printvalue,field[i][7].printvalue,field[i][8].printvalue); 
printf("\t  -----------------");

return 0;
	
	}



int floodfill(struct ms field[][], int i, int o){
		if((i<0) || (o<0) || (i>8) || (o>8)){
				return 0;
			}
		if(field[i][o].bombs = 42){
 				return 0;
			}
			
	field[i][o].uncovered = 1;
 	
	floodFill(field, i-1, o);
 	floodFill(field, i, o-1);
	floodFill(field, i, o+1);
 	floodFill(field, i+1, o);
				return 0;
			}
Here are the errors that I am recieving:
Code:
--------------------Configuration: ms2 - Win32 Debug--------------------
Compiling...
ms2.c
C:\programming\ms2.c(11) : error C2087: '<Unknown>' : missing subscript
C:\programming\ms2.c(101) : warning C4048: different array subscripts : 'struct ms (*)[1]' and 'struct ms [9][9]'
C:\programming\ms2.c(101) : warning C4024: 'floodfill' : different types for formal and actual parameter 1
C:\programming\ms2.c(124) : error C2087: '<Unknown>' : missing subscript
C:\programming\ms2.c(134) : warning C4013: 'floodFill' undefined; assuming extern returning int
Error executing cl.exe.

ms2.exe - 2 error(s), 3 warning(s)