
Consider the following function:


char * my_func(char * filename) {
    // contents not shown
}


Which of the following lines would compile correctly following this function?

char * x = my_func;
char * x = my_func("blah.txt");
char * (*x) (char *) = my_func;
char * (*x) (char *) = my_func("blah.txt");
char x[10] = my_func("blah.txt");
