typedefvoid(*mything)(int a);
struct MyStruct
{
mything mythingTwo;
}
void MyThingBig()
{
MyStruct tempstruct; //Declare a temporary struct to set values.
tempstruct.mythingTwo = NULL; //Set it equal to some value. I just set this pointer to null.return tempstruct;
//something
}
int main()
{
/*In order to declare a variable of the struct type you have above, you will need to
use the struct name as the datatype,
then the name of the variable you want to declare.
*/
MyStruct some;
/* To call the function don't forget the parenthesis!
Also, you don't need to reference the
variable in your struct (some.mythingTwo)
if you're using a function to set the values (which I assumed you were doing).
Just return the temporary struct to the caller.
*/
some = MyThingBig();
}

I hope that helped. I kind of assumed what you were trying to get at.

123456

int** apointer;
/*This has two asterisks because it is a pointer(a variable that holds a memory address) that points to another pointer.
You can have even more than that the farther you go.
If you have a pointer that points to a pointer that points to a pointer, you can get something that looks like int*** apointer;
These are used more when you get into dynamically allocated multidimensional arrays.
*/