You only need one temporary pointer, not a whole array of them.
struct pixel_type {
unsigned char r;
unsigned char g;
unsigned char b;
};
main()
{
struct pixel_type pArray[10][10], *pPtr;
int height = 10, width = 10, h, w;
char buf[32];
/* testing */
strcpy(buf, "abc");
for(h = 0; h < height; h++) {
for (w = 0; w < width; w++) {
pPtr = &pArray[width][height];
/* testing */
sscanf(buf, "%c%c%c", &pPtr->r, &pPtr->g, &pPtr->b);
/* fscanf(in, "%c%c%c", &pPtr->r, &pPtr->g, &pPtr->b); */
}
}
}