one thing that looks troublesome is this
Code:
student_t *myStudents[10];
to me, you have declared a 2d array. but then you write this
Code:
strcpy(course_t.myStudents[0].fname, "Bob");
which is referring to a whole row of structs. I think you want to refer to a single struct only, so something like
Code:
strcpy(course_t.myStudents[0][0].fname, "Bob");
would be more appropriate
but thats not the biggest problem. there is something very wrong with this line still. ill give you an equivalent line of code using integers only;
int is a data type, you cant assign it a value. similarly, course_t is a data type, not a variable, so you cannot alter it.
so how would you solve this problem using integers? you would write
Code:
int variableNameHere;
variableNameHere = 3*5;
similarly, you need to write
Code:
course_t variableNameHere;
strcpy(variableNameHere.myStudents[0][0].fname, "Bob");
those are a few of the bigger problems.
i also dont like the fact that your structs include pointers to eachother. to me that means they would be infinitely big. like you have structA, and inside structA is structB, and inside structB is structA, and inside structA is structB, etc.