请问为什么说初始化太多?

问题遇到的现象和发生背景
#include
int amount[] = {1,5,10,25,50};
char name[] = {"penny","nickel","dime","quarter","half-doll"};
int search(int key,int a[],int len)
{
    int ret = -1;
    for(int i = 0;i < len;i++)
    {
        if(key == a[i])
        {
            ret = i;
            break;
        }
    }
        return ret;
}
int main()
{
    int m;
    scanf("%d",&m);
    int r = search(m,amount,sizeof(amount)/sizeof(amount[0]));
    if(r > -1)
    {
        printf("%s\n",name[r]);
    }
    return 0;
}

char name[] = {"penny","nickel","dime","quarter","half-doll"}; 修改为指针数组:char* name[] = {"penny","nickel","dime","quarter","half-doll"}; 如下,供参考:

#include<stdio.h>
int amount[] = {1,5,10,25,50};
char* name[] = {"penny","nickel","dime","quarter","half-doll"};//修改
int search(int key,int a[],int len)
{
    int ret = -1;
    for(int i = 0;i < len;i++)
    {
        if(key == a[i])
        {
            ret = i;
            break;
        }
    }
    return ret;
}
int main()
{
    int m;
    scanf("%d",&m);
    int r = search(m,amount,sizeof(amount)/sizeof(amount[0]));
    if(r > -1)
    {
        printf("%s\n",name[r]);
    }
    return 0;
}