Here is my interpretation of your problem. I have problems with pointers myself,
but this way of doing what you want is what I always do. (barring typos)
This code is untested, but I have used this concept many times before.
Code:
MYSTRUCT2* hereItGoes;   //not sure if your declare of hereItGoes is valid

function MyCoolFunction()
{
   hereItGoes = (MYSTRUCT2*)malloc(sizeof(MYSTRUCT2));  //I always use malloc cause I can never be sure. 
   hereItGoes.aVariable = (MYSTRUCT1*)malloc((int)sizeof(MYSTRUCT)*iNeedItSeveralTimes);   //MAKE SURE the (int) is inside the malloc or it will fail
   //this line may also need to be "hereItGoes->aVariable = ..." but not sure
   int index;
   for(index = 0; index <= iNeedItSeveralTimes; index++)
     (hereItGoes->aVariable)[index] = aValue;  //you have to use the "->" in place of "." when dealing with strunct inside structs
     // and the PLACEMENT of the brackets around "(hereItGoes->aVariable)[index]" is VERY important
}



"There is no fate but what WE make." - CEO Cyberdyne Systems Corp.
A8.30.5 Commercial