c语言指针指定位置数值的改变

我的未注释的可以,注释的那个赋值方法为什么行不通啊????求大神解答!!!

char *vLcdArrayDatHdl(char *pbDatPara,u8 DatFormat,u8 bDatPosCol)
{
u8 bCntData=cbParaReset,bCntTemp;
char bArrayDat[]={'$','$','$','$','$','$','$','$','$','$','$','$','$','$','$','$'};

    switch(DatFormat)
    {
            case cbDatStr:

                for(bCntTemp=cbParaReset;bCntTemp+bDatPosCol<cbLcdDispColMax;bCntTemp++)
                {
                        if(*(pbDatPara+bCntTemp)!=NULL)
                        {
                                bArrayDat[bDatPosCol+bCntTemp]=*(pbDatPara+bCntTemp);
                        }
                        else
                        {
                                break;
                        }                           
                }

                break;
            default :
                break;              

    }

    return bArrayDat;

// u8 bCntData=cbParaReset,bCntTemp;
// char bpArrayDat="$$$$$$$$$$$$$$$$";
//

// switch(DatFormat)
// {
// case cbDatStr:
//

// for(bCntTemp=cbParaReset;bCntTemp<cbLcdDispColMax;bCntTemp++)
// {
// if(
(pbDatPara+bCntTemp)!=NULL)
// {
// bpArrayDat[bCntTemp]=*(pbDatPara+bCntTemp);
// }
// else
// {
// break;
// }

// }
//

// break;
// default :
// break;

//

// }
//

// return bpArrayDat;

}

char bpArrayDat="$$$$$$$$$$$$$$$$";
这句就直接越界,是不是你写错了,本意是想写成char bArrayDat[]="$$$$$$$$$$$$$$$$";