Код может быть скомпилирован, и результат в порядке. Но cppcheck сообщит об ошибке.
#define BUF_SIZE 1024
#define MAX_LENG 80
static unsigned char path[MAX_LENG];
unsigned char file_buf[BUF_SIZE*2];
memset(file_buf, 0, sizeof(file_buf));
strcpy(file_buf, "KID ");
strncat(file_buf, &path[strlen(path)-12], 10); //error this line
Я пробовал несколько раз, и до сих пор не могу найти причину. Кто-нибудь может дать мне несколько советов?
Спасибо всем за ответы.
но у меня есть еще вопросы: если это фатальная ошибка, почему компилятор прошел и результат такой, какой я хочу? При каком условии у него будут проблемы?
Есть ли альтернативный способ реализовать это?
И если бы я изменил его на
strncat(file_buf, &path[strlen(path)-12], 5);
ошибка cppcheack исчезнет. Почему?