Программа Не правильно выводит, ПОМОГИТЕ ПОЖАЛУЙСТА

Уважаемые. Я написал программку которая, по сути, считывает и выводит строки. Потом отправил на проверку(для универа), а тот тест говорит что все как бы правильно, но вывод визуально сходится, но по факту отличается в 2 байта, и вот я не могу найти , откуда они взялись, думал мусор в массиве, пробовал пересоздавать, без толку. Помоги разобраться, пожалуйста, заранее благодарен!

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include<malloc.h>
#define size 50
int main() {
    int cislo;
    scanf("%d", &cislo);
    getchar();
    cislo = cislo - 1;
    char** meno = (char**)malloc(size * sizeof(char*));
    for (int i = 0; i < size; i++) {
        meno[i] = (char*)malloc(size * sizeof(char));
        memset(meno[i], '\0', size);
    }
    for (int j = 0; j < size; j++) {
        gets(meno[j]);
        getchar();
    }
    printf("Prijati␣studenti:\n");

    for (int g = 0; g < cislo; g++) {
        puts(meno[g]);
    }
    for (int fr = 0; fr < cislo; fr++) {
        free(meno[fr]);
    }
    free(meno);
    return 0;
}

ввод:

2↵
Jan␣Hrasko↵
↵
(14 bajtov)

Должно быть(вывод):

Prijati␣studenti:↵
Jan␣Hrasko↵
(29 bajtov)

у меня(вывод):

Prijati␣studenti:↵
Jan␣Hrasko↵
(31 bajtov)

Ответы (0 шт):