Код может быть скомпилирован, и результат в порядке.Но 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 исчезнет.Почему?