There are two simple ways to get a pointer to the title (or author) of a specific book in this situation.
You can take the address of the first character of the Nth title (or author):
char *t = &books.title[N][0];
Or you can take advantage of the fact that an array decays to a pointer to its first element in most expressions:
char *a = books.author[N];
author[MAX1][MAX2] is an array of arrays; presumably MAX1 represents the maximum number of books (or authors, which may not always be true), and MAX2 represents the size of the arrays containing the titles and author names. Here author[0] is the first array in this array of arrays, i.e., it contains the string representing the first author's name. But since arrays (usually) decay to pointers, author[0] will (usually) decay to a pointer to its first element.
When someone talks about a "pointer to a string" they almost always mean "a pointer to the first character of a string", not "a pointer to an array containing a string." The string-handling functions in the Standard library expect pointers to the first character of any string on which they will operate.
The address operator (&) provides one of the exceptions to this rule of array decay: &author[0] is a pointer to the array author[0] because arrays do not decay to pointers when they are the operands of the & operator. A pointer to an array is not the same thing as a pointer to the first element of that array; they have different types, and different behavior under pointer arithmetic. But author[0] will decay to a pointer in most expressions, e.g., in a function call.
In this example code I have replaced MAX1 with MAX_BOOKS, and MAX2 with MAX_STR_LEN. MAX1 and MAX2 are not descriptive enough to make the code clear to readers. Note that MAX_STR_LEN is to be interpreted as the maximum length of a title or author name string, so the arrays which contain these strings must be one byte larger to contain the null terminator that all C strings must (by definition) possess.
#include <stdio.h>
#include <string.h>
#define MAX_BOOKS 128 // maximum number of books
#define MAX_STR_LEN 255 // maximum title or author name length
struct Books {
char title[MAX_BOOKS][MAX_STR_LEN+1]; // include space for `\0`
char author[MAX_BOOKS][MAX_STR_LEN+1]; // in titles and author names
} books;
int main(void) {
char *t = &books.title[0][0];
strcpy(t, "Remembrance of Things Past");
char *a = books.author[0];
strcpy(a, "Proust, Marcel");
// These are all equivalent:
printf("%s, '%s'\n", books.author[0], books.title[0]);
printf("%s, '%s'\n", &books.author[0][0], &books.title[0][0]);
printf("%s, '%s'\n", a, t);
}
Program output:
Proust, Marcel, 'Remembrance of Things Past'
Proust, Marcel, 'Remembrance of Things Past'
Proust, Marcel, 'Remembrance of Things Past'