bhe, allora si puo' fare in fretta, non che l'intera funzione occupasse molto + tempo

presupponendo che sc e' locale alla funz chiamante:

codice:
void intorno (int scX, int scaX, int scY, int scaY)
{
	if (scX != scaX+1 || scY != scaY)
	{
		// codice da eseguire 
	}
}
la richiami 8 volte cosi':
codice:
int x = sc->x, y = sc->y;

intorno (x, sca->x-1, y, sca->y-1);
intorno (x, sca->x,    y, sca->y-1);
intorno (x, sca->x+1, y, sca->y-1);

intorno (x, sca->x-1, y, sca->y);
intorno (x, sca->x+1, y, sca->y);

intorno (x, sca->x-1, y, sca->y+1);
intorno (x, sca->x,    y, sca->y+1);
intorno (x, sca->x+1, y, sca->y+1);
spero sia cio' che volevi

se non vuoi avere i parametri scX e scY, allora fai 2 variabili globali

ciao