У меня есть программа, которая считывает содержимое файла и сохраняет его в buf
. После прочтения содержимого предполагается скопировать два символа в массив. Этот код отлично работает, если я не пытаюсь читать из файла, но если я попытаюсь прочитать его из файла, printf из буфера печатает два символа, которые я хочу, но добавляет странные символы. Я подтвердил, и он корректно сохраняет в buf, никаких странных символов. Я не могу понять, что случилось ... Вот код:C программная печать странных символов
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);
}
Попробуйте выделить '3 * sizeof (char)' вместо '2 * sizeof (char)' (+1 для '\ 0') и не забывайте назначать' \ 0' в конце ' буфер –