质量分析控制疑点

时间:2011-08-04 17:57:44

标签: c

我已经为我的代码库运行了质量分析控件,我对看到的一些错误值有疑问,如下所示:

这只是代码提取

typedef struct UISR_caller_info_s/*structure declaration*/
{
    unsigned char   number[20];    
    unsigned char   Name[30];
    unsigned int  numberType;                      
} caller_t;

static caller_t   gs_val;/*variable of the structure type*/

错误:

 2027:  strcpy((char *)gs_val.Name, NULL); 
                       ^
Msg(2:0310) Casting to different object pointer type. 
REFERENCE - ISO:C90-6.3.4 Cast Operators - Semantics <next> 

错误显示在char *类型转换中,我真的不知道为什么会发生这种情况。 请让我知道如何避免这种错误

由于 GNR

1 个答案:

答案 0 :(得分:0)

首先,strcpy调用可能会导致分段错误(肯定导致未定义的行为) - 您可能不希望NULL用于第二个参数。无论如何你都不需要演员阵容:

strcpy(gs_value.Name, "");

工作正常,可能就是你的意思。可能是你的编译器非常挑剔,并且抱怨从unsigned charchar的演员表 - 你可以通过适当地改变你的结构来解决这个问题。