입력을 char 포인터에 두는 것에 대한 테스트 케이스를 만든다. 이 프로그램을 실행하려고하면 출력이 올바르지 않습니다 (_ @ $와 같은 일련의 임의 문자가됩니다). char 포인터의 각 요소를 인쇄하려고합니다. 코드에 몇 가지 사항을 변경했지만 여전히 잘못되었습니다 (이전과 같은 문제). 누군가가 잘못되어 가고있는 문제와 해결 방법을 파악하는 데 도움을 줄 수 있습니까?입력을 읽고 char 포인터에 넣는다
int chara;
int counts =0;
main(){
char *buffer=(char *)malloc(sizeof(char)*25);
while((chara=getchar())!= EOF&& counts<25){
*buffer++ = chara;
printf("%c\n",*buffer);
counts++;
}
*buffer = '\0';
printf("%s\n",buffer);
free(buffer);
}
'sizeof (20) == 4'. 그것은 당신이 원하는 것이 아닙니다. – SLaks
'sizeof (20)'은 당신이 원하는 것을하지 않습니다. 20 바이트를 할당하려면'malloc (20)'을 원한다. 또한 구체적으로 기재하십시오. "출력이 올바르지 않습니다"라고 말하면 도움을 어렵게 만듭니다. – lurker
버퍼에 1 바이트 만 채워지면 루프를 멈추기 위해 무언가를 루프에 추가해야합니다. 당신이 가지고있는 것은 영원히 돌아가고, 버퍼 뒤의 것은 무엇이든지 덮어 씌울 것입니다. –