Well, sorry to double post, but this post contain info different than the first post.
I ended up figuring a way to do this. Please critique this. I want to be sure I am using things correctly and didn't just end up getting lucky. I do know that later on I will use free() on my pixd struct. By the way, I'm banking on this being a 24 bit bitmap, so if your trying to analyze pixellen, there shouldn't be a reserved byte.
Code:
typedef struct PIXELDATA
{
BYTE* data;
} PIXELDATA;
struct PIXELDATA pixd = {0};
int bmp_load()
{
int i;
size_t result;
result = fread(&bmfh, sizeof(bmfh), 1, fp);
if (result != 1)
return 0;
result = fread(&bmih, sizeof(bmih), 1, fp);
if (result != 1)
return 0;
pixellen = (bmih.biHeight * bmih.biWidth * 3);
pixd.data = malloc(sizeof(pixd) * pixellen);
for (i = 0; i < pixellen; i++)
{
pixd.data[i] = (BYTE)malloc(sizeof(BYTE));
pixd.data[i] = (BYTE)NULL;
fread(&pixd.data[i], 1, 1, fp);
}
return 1;
}