数组替代指针用错的一例

来源:互联网 发布:手机通话记录软件 编辑:程序博客网 时间:2024/06/05 02:43

int ys_subtitle_get_language_by_index(int index, char **lang)
{
    if (index < pmt_info.num_of_SUBTITLE)
    {
        subtitle_language[0] = pmt_info.SUBTITLE_Language[index][0];
        subtitle_language[1] = pmt_info.SUBTITLE_Language[index][1];
        subtitle_language[2] = pmt_info.SUBTITLE_Language[index][2];
        subtitle_language[3] = 0;
        *lang = subtitle_language;
        return 0;
    }
    return -1;
}

char llan[10];

memset(llan,0,10);

ys_subtitle_get_language_by_index(i,&llan);
                printf("the subtitle langauge is %s/n",llan);

此时打印错误(为乱码)

因为数组llan只能改变内容,不能改变llan指向的地址

应该定义为:char *llan=NULL;

原创粉丝点击