C语言查找最大字符串用指针实现怎么写?

main函数实现如下:
int main()
{
char a[10][300]={0},*p;
int n=0;
while(gets(a[n])!=NULL){
n++;
}
p=find_max_string(a,n);
puts(p);
return 0;
}

供参考:

#include <stdio.h>
#include <string.h>
char* find_max_string(char(*a)[300], int n)
{
    int i = 0;
    char* p = a[i];
    for (i = 1; i < n; i++)
        if (strcmp(p, a[i]) < 0)
            p = a[i];
    return p;
}
int main()
{
    char a[10][300] = { 0 }, * p;
    int n = 0;
    while (gets(a[n]) != NULL) {
        n++;
    }
    p = find_max_string(a, n);
    puts(p);
    return 0;
}