В процессе обучения C я решил создать struct , которая дает мне размер Fi sh, который я предоставляю, поэтому возникает вопрос, почему, когда я напишите этот маленький кусочек кода:
#include <stdio.h>
#include <string.h>
struct fish
{
char catfish[9]; //reserve memory for 9 chars
char goldfish[10]; //reserve memory for 10 chars
char mackrel;
char oldfish;
};
int main()
{
struct fish typeof_fish;
strcpy(typeof_fish.catfish, "Big Fish\n");
strcpy(typeof_fish.goldfish, "Small Fish\n");
printf("%s\n", typeof_fish.catfish);
return 0;
}
на выходе выдается "Big Fi sh Small Fi sh" Здесь выводится
еще когда я переписываю верхняя часть кода и изменение символа сом [9] ; to char сом [10] :
#include <stdio.h>
#include <string.h>
struct fish
{
char catfish[10]; //reserve memory for 10 chars
char goldfish[10]; //reserve memory for 10 chars
char mackrel;
char oldfish;
};
int main()
{
struct fish typeof_fish;
strcpy(typeof_fish.catfish, "Big Fish\n");
strcpy(typeof_fish.goldfish, "Small Fish\n");
printf("%s\n", typeof_fish.catfish);
return 0;
}
выдает здесь "Big Fi sh"
заранее благодарю за ответ на эту загадочную ошибку