Анализ качества контроля сомнений - PullRequest
0 голосов
/ 04 августа 2011

Я запустил контроль анализа качества для моей базы кода, и у меня есть некоторые сомнения относительно некоторого видимого значения ошибки, которое показано ниже:

это просто извлечение кода

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 голосов
/ 04 августа 2011

Прежде всего, этот вызов strcpy, вероятно, вызовет ошибку сегментации (а определенно вызывает неопределенное поведение) - вам, вероятно, не нужен NULL для второго параметра.В любом случае вам не нужен актерский состав для вызова:

strcpy(gs_value.Name, "");

Будет работать нормально, и, вероятно, именно это вы и имели в виду.Возможно, ваш компилятор очень требователен, и он жалуется на приведение от unsigned char до char - вы можете исправить это, изменив свою структуру соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...