When you want to change a pointer, you need to pass a pointer to that pointer as a parameter. This is the correct function:

Code:
function create_my_bmap (BMAP** this)
{
	BMAP* fb = bmap_createblack (256,256,24);
	// do something with fb
	...
	//
	*this = fb;
}


But instead of changing a parameter its better when the function returns the bitmap pointer:

Code:
BMAP* create_my_bmap ()
{
	BMAP* fb = bmap_createblack (256,256,24);
	// do something with fb
	...
	//
	return fb;
}