See your method #2 says
myStruct *s = myStruct_init();
myStruct_foo(s);
myStruct_destroy(s);
Now see if myStruct_init()
needs return some error code for various reason then lets go this way.
myStruct *s;
int ret = myStruct_init(&s); // int myStruct_init(myStruct **s);
myStruct_foo(s);
myStruct_destroy(s);