-2
main()
{
int n;
scanf("%d",&n);
char a[n];
}
이 경우 런타임 동안 메모리를 'a'로 할당하지 않고 malloc을 사용해야하는 이유는 무엇입니까 ??malloc을 사용하지 않고 런타임에 메모리를 할당 할 수 있습니까?
main()
{
int n;
scanf("%d",&n);
char a[n];
}
이 경우 런타임 동안 메모리를 'a'로 할당하지 않고 malloc을 사용해야하는 이유는 무엇입니까 ??malloc을 사용하지 않고 런타임에 메모리를 할당 할 수 있습니까?
실제로 내부적으로 컴파일러는 가능한 경우 스택에 스토리지를 할당하려고 시도하는 alloca()로 변환합니다. 그렇지 않은 경우 일반 malloc을 사용할 수 있습니다. 두 번째 경우에는 스택 프레임이 무너질 때 regular free()를 호출합니다. – Anonymous
나는이 질문이 연결된 질문의 속임수라고 생각하지 않는다. – haccks
이것은 dup이라는 것에 동의하지 마십시오. 가변 길이 배열에는 다른 답변에서 다루지 않는 특정 문제가 있습니다. – Tony