이 코드를 살펴보십시오. 첫 번째 변수에는 1 바이트를 할당하고 두 번째 변수에는 다른 바이트를 할당합니다. 그러나 컴파일러가 더 많은 것을 할당하는 것처럼 보입니다 (또는 뭔가 빠졌습니다). 프로그램은 길이가 1 바이트 이상이더라도 두 문자열 모두를 출력합니다.c : 메모리 할당 (현재 진행 중)
void main() {
char* some1 = malloc(1);
sprintf(some1,"cool");
char* some2 = malloc(1);
sprintf(some2,"face");
printf("%s ",some1);
printf("%s\n",some2);
}
메모리를 할당 할 때 어떤 일이 벌어지고 있는지 조명 해줄 수 있습니까?
그건 그렇고, 내가 당신이라고 생각하는 것을 말하는다면 그것은 트롤 페이스가 아니라 쿨 페이스입니다. – GManNickG
'main()'은 어떤 타입을 반환합니까? 나는 당신에게 힌트를 주겠다. 그것은'void'가 아니라'int'를 반환한다. –