Программа Не правильно выводит, ПОМОГИТЕ ПОЖАЛУЙСТА
Уважаемые. Я написал программку которая, по сути, считывает и выводит строки. Потом отправил на проверку(для универа), а тот тест говорит что все как бы правильно, но вывод визуально сходится, но по факту отличается в 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)