[해결]구조체로 정의한 두번째 배열의 값을 변경할 수가 없습니다.---c언어

저는 linux에서 학습하고 있습니다.(GCC사용중…)

typedef struct str
{
char x[10];
char y[20];
int z;
} Str;

Str * arr[5];

arr[0] = (Str *)malloc(sizeof(Str));

fgets(arr[0]->x, 10, stdin);
fgets(arr[0]->y, 20, stdin); —> "true"를 입력했다고 가정하겠습니다.

여기서 두번째로 저장된 배열 y를 확인해보면 다음과 같습니다.

116, 114, 117, 101, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

배열의 7번째 이후로 쓰레기 값이 들어가지만 일단 전부 " 0 "이라고 가정하겠습니다. 제가 5번째 요소에 저장된 10(enter)대신에 " 0 "을 넣었으나 절대로 " 0 "이 들어가지 않습니다.

나중에 출력하면 10때문에 개행됩니다. 첫번째 입력을 저장한 배열은 제가 원하는 대로 enter를 지워 집니다.(확인해보면 10은 없습니다.)

그러나 두번째로 입력받은 것은 10을 지울수가 없습니다. 왜 이런 것입니까?

=========================================================================================================

잘 지워집니다. 질문한 저의 실수입니다.

저의 경우에는 지워집니다.

[code:gkqhiot8]
arr[0]->y[4] = 0;
[/code:gkqhiot8]
0을 어떻게 넣으셨나요?

답변 감사합니다.

답변을 보면서 생각해보니 " arr[0]->y[4] = 0; "인데 " arr[0]->y[4] = 0 "였던 것 같습니다. 그래서 해당 file을 찾아보니 지우고 없어서 다시 만들어서 확인해 봤습니다.

잘 됩니다. 아! 저의 실수입니다. 가끔 너무 간단한 실수여서 오히려 보이지 않았던 것 같습니다. 답변 감사합니다.