C программа печати странных символов
У меня есть программа, которая читает содержимое файла и сохраняет его вbuf
, После прочтения содержимого предполагается скопировать два на два символа в массив. Этот код работает нормально, если я не пытаюсь читать из файла, но если я пытаюсь прочитать его из файла, printf из буфера выводит два нужных мне символа, но добавляет странные символы. Я подтвердил, и он правильно сохраняет в buf, никаких странных символов там нет. Я не могу понять, что не так ... Вот код:
char *buffer = (char*)malloc(2*sizeof(char));
char *dst = buffer;
char *src = buf;
char *end = buf + strlen(buf);
char *baby = '\0';
while (src<= end)
{
strncpy(dst, src, 2);
src+= 2;
printf("%s\n", buffer);
}