ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
3 декабря
1468115
IBAH (06.10.2024 21:42, просмотров: 1254)
А что будет в АРМе (уточню компилятор ИАР), если записать по указателю NULL. Задался таким вопросом в связи с чем 

Гоняю проект на статическом анализаторе.

Сомнения у меня вызывал это кусок

//
    unsigned char TmpString[LinkUDPRazmerBufferIP];
    strncpy((char*)TmpString, (char*)IpAdressLinkUDP, LinkUDPRazmerBufferIP); //Копируем
    unsigned char* TmpUk= memchr(TmpString, '.', 4);//Первая точка
    TmpUk= memchr(TmpUk+1, '.', 4); //Вторая точка 
    TmpUk= memchr(TmpUk+1, '.', 4); //Третья точка 
    (TmpUk+1)[0]='2';
    (TmpUk+1)[1]='5';
    (TmpUk+1)[2]='5';
    (TmpUk+1)[3]=0;
    PutStrModemM(TmpString);//

Реальный способ выстрелить себе в ногу. Пишем по указателю, полученному из функции, указатель не проверяем.

А анализатор пишет ОК.

Кому верить?